ホームページ  >  記事  >  Java  >  緯度と経度から距離を計算し、境界ボックスを作成する方法

緯度と経度から距離を計算し、境界ボックスを作成する方法

Susan Sarandon
Susan Sarandonオリジナル
2024-10-31 07:44:02210ブラウズ

How to Calculate Distance and Create a Bounding Box from Latitude and Longitude?

緯度と経度から距離を測定し、境界ボックスを作成する

2 つの地理座標 (緯度と経度) 間の距離の計算は、次の場合に不可欠です。地図やナビゲーションなどのさまざまなアプリケーション。ハーバーサインの公式としても知られる大圏距離は、地表に沿った 2 点間の距離の正確な推定値を提供します。

距離が決定したら、次のステップは境界ボックスを定義することです。特定の点の周り。このボックスは、特定の地理的領域内のポイントをカプセル化するために機能します。このボックスを作成するには、元の点から北と東に指定された距離にある点を見つける必要があります。

Java 実装

次の Java コード スニペットは、次の Java コード スニペットを提供します。 2 点間の距離を計算し、境界を作成するためのハバーサイン公式の実装ボックス:

<code class="java">import java.lang.Math;

public class DistanceBoundingBox {

    public static void main(String[] args) {
        double lat1 = 37.386051; // Latitude of the origin point
        double lng1 = -122.083855; // Longitude of the origin point

        double distance = 10; // Distance in miles to extend the bounding box
        
        double lat2 = lat1 + distance / 69; // Calculate the northernmost point
        double lng2 = lng1 + distance / Math.cos(lat1 / 57.2957795) / 69; // Calculate the easternmost point

        System.out.println("Distance between the two points: " + distance);
        System.out.println("North: " + lat2);
        System.out.println("East: " + lng2);
    }
}</code>

使用方法:

main メソッドに 2 点の緯度と経度の座標を入力します。このコードは、点間の大円距離を計算し、コンソールに出力します。また、元の点から指定された距離にある最北点と最東端の点も計算されます。

追加の考慮事項:

  • 距離は次のように計算されます。マイル。キロメートルが必要な場合は、結果に 1.60934 を掛けます。
  • ハバーサインの公式は、地球が完全な球体であることを前提としています。精度を高めるには、地球の楕円体の形状を考慮した Vincenty 式の使用を検討してください。
  • この実装では入力検証は処理されません。入力座標が有効な緯度と経度の値であることを確認してください。

以上が緯度と経度から距離を計算し、境界ボックスを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。