System.Device.Location.GeoCoordinate.GetDistanceTo (...)를 디 컴파일하고 지구의 반지름을 계산 단계 중 하나로 지정해야하는 Haversine 수식을 사용한다는 것을 알았습니다.GeoCoordinate.GetDistanceTo 지구의 반지름이 잘못 되었습니까?
디 컴파일 된 코드에 지정된 반지름은 6376500.0
(미터)입니다. MSDN에
구 각을 지구를 모델링하버 사인 식 계정 있지만 은 타원형이 아닌 구면 지구를 가정한다.
여러 가지 방법이 가 6,371km
내가 검색 사방 또한
, 내가 찾을 수없는 발견의 반경을 의미 얻을 것을
위키 백과 states 누구나 아주 작은 반지름을 6,376.5
km로 지정하십시오.
꽤 가까워도 GetDistanceTo
은 6,376.5
km를 사용하지만 널리 허용되는 반경은 6,371
km입니다. 차이점은 무엇입니까? GetDistanceTo
의 제작자가 지구의 반경을 근사하는 더 좋은 방법을 찾았습니까?
적도에서 반경을 사용하고있는 것처럼 보이는 빠른 Google의 모습 (어쨌든 가깝습니다.) – Surfbutler
@Surfbutler하지만 이유는 무엇입니까? Haversine식이 구형 지구를 가정 할 때 최대 반경 대신 평균 반경을 사용하는 것이 어떻습니까? 최대 반경을 사용하는 것이 왜 어떤면에서 더 좋을까요? –
필자는이 함수를 작성한 Microsoft 개발자 만이 그 대답을 알고 있다고 생각합니다. – Surfbutler