답변:
체크 아웃하는 것이 좋습니다 :
구면 : http://www.movable-type.co.uk/scripts/latlong.html
그레이트 서클 : 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 마일 이내의 포인트"쿼리를 위해 데이터베이스와 함께 저장 될 수 있습니다.
물론 이것은 완벽한 구체를 가정하고 지구는 완벽한 타원체가 아니기 때문에 정확도는 몇 미터에 불과합니다.
GPS Visualizer의 좌표 계산기 및 거리 도구 페이지 에는 유용한 도구가 몇 가지 있습니다 . 그들 중 하나는 두 점 사이의 거리를 계산합니다. 그레이트 서클이 표시된 상태에서지도에 점을 그리는 옵션과 프로파일을 그리고 데이터를 내보내는 옵션이 있습니다.