首頁  >  文章  >  Java  >  如何在 Java 中計算大圓距離並根據緯度和經度點產生邊界框?

如何在 Java 中計算大圓距離並根據緯度和經度點產生邊界框?

Linda Hamilton
Linda Hamilton原創
2024-11-01 01:00:02348瀏覽

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. 保持經度相同。
    • 計算東點:
    • 保持相同緯度作為原點。
  3. 將提供的距離加到原點的經度。

將原點與北點和東點結合,可以產生邊界框。

以上是如何在 Java 中計算大圓距離並根據緯度和經度點產生邊界框?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn