>  기사  >  Java  >  Java의 위도 및 경도 지점에서 Great Circle Distance를 계산하고 경계 상자를 생성하는 방법은 무엇입니까?

Java의 위도 및 경도 지점에서 Great Circle Distance를 계산하고 경계 상자를 생성하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-01 01:00:02355검색

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

Java의 위도 경도 점에서 거리 계산 및 경계 상자 생성

위도와 경도 좌표 사이의 거리 측정(대원 거리), 지리공간 애플리케이션에 필수적입니다. 또한 거리를 사용하여 점 주위에 경계 상자를 만들면 시각화 및 분석이 가능합니다.

대권 거리 계산

대권 거리 계산에 널리 사용되는 방법인 Haversine 공식은 다음과 같이 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의 위도 및 경도 지점에서 Great Circle Distance를 계산하고 경계 상자를 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.