Javaで大圏距離を計算し、緯度と経度の点から境界ボックスを生成する方法は?

Linda Hamilton
リリース: 2024-11-01 01:00:02
オリジナル
362 人が閲覧しました

How to Calculate Great Circle Distance and Generate Bounding Boxes from Latitude and Longitude Points in Java?

Java での緯度経度点からの距離の計算と境界ボックスの生成

大圏距離として知られる緯度と経度の座標間の距離の測定、地理空間アプリケーションには不可欠です。さらに、距離を使用して点の周囲に境界ボックスを作成すると、視覚化と分析が可能になります。

大圏距離の計算

ハバーサインの公式は、大圏の距離を計算するために広く使用されている方法です。 Java では次のように実装できます:

<code class="java">public static double distFrom(double lat1, double lng1, double lat2, double lng2) {
    double earthRadius = 3958.75; // miles (or 6371.0 kilometers)
    double dLat = Math.toRadians(lat2 - lat1);
    double dLng = Math.toRadians(lng2 - lng1);
    double sindLat = Math.sin(dLat / 2);
    double sindLng = Math.sin(dLng / 2);
    double a = Math.pow(sindLat, 2) + Math.pow(sindLng, 2)
            * Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2));
    double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
    double dist = earthRadius * c;

    return dist;
}</code>
ログイン後にコピー

境界ボックスの生成

距離が計算されたら、境界ボックスを表す点を決定する必要があります。

  1. 北点の計算:

    • 指定された距離を元の点の緯度に追加します。
    • 同じ値を維持します経度。
  2. 東点の計算:

    • 元の点と同じ緯度を維持します。
    • 指定された距離を元の点の経度に加算します。

元の点と北および東の点を組み合わせることで、境界ボックスを生成できます。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!