GeoCoordinate.GetDistance使用错误的地球半径?

时间:2013-10-02 13:03:50

标签: c# geolocation geometry haversine

我反编译System.Device.Location.GeoCoordinate.GetDistanceTo(...),发现它使用Haversine公式,该公式应指定地球的半径作为计算步骤之一。

反编译代码中指定的半径为6376500.0(米)。

在MSDN中,documentation for GetDistanceTo有一条评论:

  

Haversine公式解释了地球的曲率,但是   假设球形地球而不是椭球形。

维基百科states

  

将地球建模为球体的几种不同方式各自产生一个   平均半径为6,371公里

在我搜索的任何地方,我发现找不到任何人,很少将半径指定为6,376.5 km。

所以,即使它们非常近,GetDistanceTo使用6,376.5 km,但广泛接受的半径为6,371 km。为什么不同? GetDistanceTo的创造者是否找到了更接近地球半径的方法?

1 个答案:

答案 0 :(得分:1)

除非我的数学计算出来,否则这可能导致最多34公里的差异。

听起来很多,但只有0.17%的误差。

也许你只能使用/显示两个重要位置的结果,然后它才真正重要。