緯度と経度を使用した 2 点間の距離の計算
地図上の 2 点間の距離を求めることは、さまざまな分野で一般的なタスクです。ナビゲーションから GIS まで。この距離を正確に計算する 1 つの方法は、緯度と経度の座標を操作するために特別に設計された Haversine 式を使用することです。
Java での Haversine 式の実装
A Java での Haversine 式の正確な実装を以下に示します。
<code class="java">public static double distance(double lat1, double lon1, double lat2, double lon2) { final int R = 6371; // Radius of the earth in kilometers double latDistance = Math.toRadians(lat2 - lat1); double lonDistance = Math.toRadians(lon2 - lon1); double a = Math.sin(latDistance / 2) * Math.sin(latDistance / 2) + Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)) * Math.sin(lonDistance / 2) * Math.sin(lonDistance / 2); double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); double distance = R * c * 1000; // convert to meters return distance; }</code>
式の使用法
座標 (lat1、lon1) を使用して 2 点間の距離を計算するには) と (lat2, lon2) は、これらの値をパラメータとして distance メソッドに渡すだけです。結果はメートル単位で返されます。
例:
<code class="java">double lat1 = 41.881832; double lon1 = -87.623177; double lat2 = 41.889809; double lon2 = -87.621882; double distance = distance(lat1, lon1, lat2, lon2); System.out.println("Distance between the points: " + distance + " meters");</code>
精度に関する考慮事項
結果の精度入力座標の精度に依存します。緯度と経度の値が正しい形式で、適切な単位 (10 進度など) で提供されていることを確認することが重要です。
以上が緯度と経度を使用して 2 点間の距離を計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。