使用纬度和经度计算距离:解决编码错误
在尝试实现根据纬度和经度查找距离的公式时,用户遇到意外结果。参考小程序中给出的公式对于所提供的测试点正确有效。然而,用户的代码返回了不准确的距离值。
代码检查
检查代码后发现用户正在使用已弃用的 Vincenty 距离计算方法,在 GeoPy 版本 1.13 中已被更准确的 geopy.distance.distance() 函数取代。用户代码使用的半正矢公式假设球形地球模型,并且可能引入高达 0.5% 的误差。
使用 geopy.distance
来解决问题,建议改用更准确的 geopy.distance.geodesic() 函数来计算距离。此函数利用椭球模型,例如 WGS-84,并提供更精确的结果:
<code class="python">import geopy.distance coords_1 = (52.2296756, 21.0122287) coords_2 = (52.406374, 16.9251681) distance = geopy.distance.geodesic(coords_1, coords_2).km print(distance)</code>
使用修改后的代码,精确计算出两点之间的距离为 279.352 公里。
以上是为什么我的纬度/经度距离计算不正确?的详细内容。更多信息请关注PHP中文网其他相关文章!