ฉันทำงานกับสแต็ค ESRI จัดเก็บเลเยอร์ของฉันใน sql-spatial-enabled-SDE- geodatabase (ประเภทเรขาคณิตเว็บ Mercator-3857)
ฉันกำลังสร้างแอปพลิเคชันการจับคู่เว็บดังนั้นโดยค่าเริ่มต้นไทล์จะอยู่ในเว็บ Mercator ด้วยเช่นกัน 3857
ผ่าน procs ที่เก็บไว้ฉันใช้ STD Distance เพื่อค้นหาระยะทางจากตำแหน่งของผู้ใช้ (พิกัดใน Mercator ของเว็บ) ไปยังเลเยอร์ต่างๆ
ปัญหาคือเนื่องจากการบิดเบือนของ Web Mercator ทำให้ระยะทางของฉันลดลงเรื่อย ๆ ยิ่งห่างจากเส้นศูนย์สูตร
ฉันเคยคิดถึงการจัดเก็บเลเยอร์ของฉันในรูปแบบ sql-spatial-geography (มากกว่ารูปทรงเรขาคณิต) แต่:
- ฉันคิดว่าข้อความค้นหาระยะทางของฉันจะใช้เวลานานขึ้น (ระยะทาง calcs บนพื้นผิวทรงกลม)
- ฉันจะต้องนำเข้าข้อมูลจำนวนมากอีกครั้ง
- บริการ arcgis จะไม่เร็วเท่าที่พวกเขาจะต้องฉายได้ทันที
ถ้าฉันไปที่ Google Maps และคำนวณระยะทางระยะทางที่ส่งกลับจะแม่นยำมากยิ่งขึ้นแม้ในพื้นที่ Nortern / ภาคใต้ดังนั้นฉันคิดว่า Google ต้องแก้ไขความผิดเพี้ยนที่เกิดจากการฉายเว็บ Mercator
คำถามของฉันแล้ว: มีค่าปัจจัยอย่างง่าย ๆ ที่สามารถนำไปใช้กับ Calcs ทางไกลในการฉายเว็บ Mercator เพื่อให้ได้ระยะทาง "ถูกต้อง" หรือไม่?
cos((l1 + l2)/2)
ซึ่งจะทำให้ระยะทางของเส้นทางแบบ rhumb-line / fixed แน่นอนมากกว่าระยะทางวงกลมใหญ่