gpt4 book ai didi

c# - GeoCoordinate.GetDistanceTo 使用错误的地球半径?

转载 作者:行者123 更新时间:2023-11-30 17:51:40 24 4
gpt4 key购买 nike

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

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

在 MSDN 中,documentation for GetDistanceTo有一句话:

The Haversine formula accounts for the curvature of the earth, but assumes a spherical earth rather than an ellipsoid.

维基百科 states那个

Several different ways of modeling the Earth as a sphere each yield a mean radius of 6,371 kilometers

而且在我搜索的所有地方,我都发现找不到任何人 很少有人将半径指定为 6,376.5 公里。

因此,即使它们非常接近,GetDistanceTo 使用 6,376.5 公里,但广泛接受的半径是 6,371 公里。为什么不同? GetDistanceTo 的创建者是否找到了估算地球半径的更好方法?

最佳答案

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

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

也许您只能在 2 个重要位置使用/显示结果,那么这并不重要。

关于c# - GeoCoordinate.GetDistanceTo 使用错误的地球半径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19137597/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com