위도/경도를 사용하여 Java에서 거리 및 경계 상자 좌표 계산
두 위도와 경도 지점 사이의 거리를 측정하고 경계 만들기 주어진 지점 주위의 상자는 매핑 및 위치 기반 응용 프로그램에서 일반적인 작업입니다. 이러한 요구를 해결하기 위해 Java 개발자는 Haversine 공식을 활용하여 큰 원 거리를 정확하게 계산할 수 있습니다.
거리 계산
수학 방정식인 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>
경계 상자 생성
거리를 계산하면 북쪽 지점을 결정하여 경계 상자를 생성할 수 있습니다. 그리고 지정된 지점에서 지정된 거리만큼 동쪽으로 이동합니다. 다음 의사코드는 이 프로세스를 보여줍니다.
// Assuming distance is in miles // Calculate North and East edges northEdge = lat + (distance / 69); // Divide by 69 to convert to degrees eastEdge = lng + (distance / 53); // Divide by 53 to convert to degrees // Create bounding box coordinates boundingBox = [lat, lng, northEdge, eastEdge]
위 내용은 Java에서 위도와 경도를 사용하여 거리와 경계 상자 좌표를 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!