使用纬度和经度计算点之间的距离
在尝试实现基于纬度和经度计算距离的公式时,用户有遇到与他们的代码不一致的情况。给定的公式在小程序中显示了有希望的结果,但在 Python 代码中应用相同的公式会产生不正确的距离。
这种差异背后的原因在于 Vincenty 距离计算方法的弃用性质。在 GeoPy 1.13 之前的版本中,Vincenty 距离是计算距离的默认方法,而 1.13 及更高版本引入了 geopy.distance.distance() 作为首选方法。
Vincenty 距离方法利用椭圆体模型,例如 WGS-84,与假设地球为球形的半正矢公式相比,它提供了更准确的结果。此假设可能导致高达 0.5% 的误差。
要准确计算距离,用户应使用以下代码替换 Vincenty 距离公式的实现:
import geopy.distance coords_1 = (52.2296756, 21.0122287) coords_2 = (52.406374, 16.9251681) print(geopy.distance.geodesic(coords_1, coords_2).km)
此代码将使用更精确的椭球模型计算两点之间的距离,并以公里为单位返回结果。
以上是为什么我的 Geopy 距离计算不准确?的详细内容。更多信息请关注PHP中文网其他相关文章!