2010-12-09 8 views
0

지구 표면의 두 위치를 나타내는 두 개의 LatLon (위도 - 경도) 객체가 있습니다. 지구의 중심과이 두 개의 LatLon 객체 사이의 각도 (라디안)를 찾고 싶습니다.지구의 중심과 위도 - 경도 좌표 두 개 사이의 각도를 찾으려면 어떻게합니까

지구의 반경과이 각도를 사용하여 두 위치 사이의 호 길이를 계산합니다 (피타고라스를 사용하는 것보다 더 나은 정밀도를 얻을 수 있으며 큰 원 거리 계산보다 빠름을 알 수 있습니다) .

나는 이미 피타고라스 거리와 큰 원 거리를 제공하는 코드가 있습니다. 이 같은

+0

얼마나 정확해야하며 어떤 거리 이상이어야합니까? 수천 마일 떨어진 지점에 대해 이야기하고 있다면 구형 지구와 같이 단순화 된 모델을 가정하면 상당한 오류 (마일 수 준)가 발생할 수 있습니다. –

+2

arclength를 원하면 큰 원을 사용해야합니다. 그렇지 않으면 구의 표면에서 정확하지 않은 유클리드 거리를 얻게됩니다. http://en.wikipedia.org/wiki/Great-circle_distance에 대한 통찰력을 얻기 위해이 위키피디아 기사를 확인하십시오. 그건 그렇고, gis.stackexhange.com에서 물어 보면 더 많은 답변을 얻을 수 있습니다. – SRM

+0

@SRM, 올바른 링크 : http://gis.stackexchange.com/ –

답변

-1
+0

그래서 LatLons를 데카르트 좌표로 변환하고,이를 정규화하고, 내적을 취한 다음 역 코사인을 계산합니까? 더 쉬운 방법이 있습니까? – wpearse

+0

이것은 구의 표면에서 거친 부정확 한 유클리드 거리를 초래합니다. – SRM

+0

@wpearse 예, 지구 표면의 호 길이는 간단한 계산이 아닙니다. – SRM

-2

내가 (종이에 일부 CALC 후) 처음에이 생각이 피타고라스 일이?
angle_between_radian = sqrt(deltaLA^2 + deltaLO^2)*PI /180
편집 : delta = delta>180?360-delta:delta
위의 영역에서 작업하는 것은 틀 렸음 ^^.
그러나이 링크는 도움이 될 수 있습니다 : Calculate distance, bearing and more between Latitude/Longitude points.

+0

가까이에 있지 않습니다. 북극, 1 인치 간격으로 두 점을 상상해보십시오. 그러나 경도의 180도 차이가 있습니다 ... –

+0

이것은 단지 아이디어입니다, 델타 우리는 180보다 크지 않아야합니다. 그러면 delta> 180 일 때 360 델타처럼 수정할 수 있습니다. ... – pinichi

관련 문제