ฉันมีละติจูดและลองจิจูดสองชุด
ฉันจะหาระยะห่างระหว่างสองตำแหน่งได้อย่างไรถ้าฉันคิดว่าโลกนั้นเป็นรูปวงรีที่สมบูรณ์แบบ (ด้วยความเยื้องศูนย์ของ 0.0167)
ฉันมีละติจูดและลองจิจูดสองชุด
ฉันจะหาระยะห่างระหว่างสองตำแหน่งได้อย่างไรถ้าฉันคิดว่าโลกนั้นเป็นรูปวงรีที่สมบูรณ์แบบ (ด้วยความเยื้องศูนย์ของ 0.0167)
คำตอบ:
ฉันอยากจะแนะนำการเช็คเอาท์:
ทรงกลม: http://www.movable-type.co.uk/scripts/latlong.html
Great-Circle: http://www.movable-type.co.uk/scripts/gis-faq -5.1.html
เพื่อให้คุณรู้ว่าละติจูดและลองจิจูดสองเส้นของคุณเป็นอย่างไร
คุณสามารถคำนวณพิกัดคาร์ทีเซียนสำหรับแต่ละ:
xa = (Cos(thisLat)) * (Cos(thisLong));
ya = (Cos(thisLat)) * (Sin(thisLong));
za = (Sin(thisLat));
xb = (Cos(otherLat)) * (Cos(otherLong));
yb = (Cos(otherLat)) * (Sin(otherLong));
zb = (Sin(otherLat));
จากนั้นคำนวณระยะทางวงกลมที่ยิ่งใหญ่ระหว่างสองวงโดยใช้:
MeanRadius * Acos(xa * xb + ya * yb + za * zb);
วิธีการที่เรียบง่ายนี้ช่วยให้สามารถคำนวณค่า x, y และ z ได้ล่วงหน้าซึ่งสามารถจัดเก็บไว้ในฐานข้อมูลเพื่อค้นหา "จุดภายใน x ไมล์" ที่มีประสิทธิภาพ
แน่นอนว่านี่ถือว่าเป็นทรงกลมที่สมบูรณ์แบบและโลกก็ไม่ได้เป็นดาวฤกษ์ที่สมบูรณ์แบบดังนั้นความแม่นยำจึงอยู่ที่เพียงไม่กี่เมตรเท่านั้น
มีไม่กี่คนของเครื่องมือที่มีประโยชน์ในจีพีเอสเป็น Visualizer ประสานงานเครื่องคิดเลขและเครื่องมือระยะหน้า หนึ่งในนั้นคำนวณระยะห่างระหว่างจุดสองจุด มีตัวเลือกในการวาดจุดบนแผนที่โดยแสดงวงกลมใหญ่พร้อมกับตัวเลือกในการวาดโปรไฟล์และส่งออกข้อมูล