使用緯度和經度計算距離:解決編碼錯誤
在嘗試實現根據緯度和經度查找距離的公式時,用戶遇到意外結果。參考小程式中給出的公式對於所提供的測試點正確有效。然而,使用者的程式碼回傳了不準確的距離值。
程式碼檢查
檢查程式碼後發現使用者正在使用已棄用的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中文網其他相關文章!