緯度と経度を使用した距離の計算: コーディング エラーへの対処
緯度と経度に基づいて距離を求める公式を実装しようとしましたが、ユーザーが予期しない結果に遭遇しました。参照アプレットに示されている式は、指定されたテスト ポイントに対して正しく機能しました。ただし、ユーザーのコードは不正確な距離値を返しました。
コード インスペクション
コードを検査したところ、ユーザーが非推奨の 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>
改訂されたコードでは、2 点間の距離は 279.352 キロメートルとして正確に計算されます。
以上が緯度/経度の距離計算が正しくないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。