Skip to content
Trang chủ » Java 위도 경도에 따른 거리 계산(내 주변 반경): Haversine 공식 활용하기

Java 위도 경도에 따른 거리 계산(내 주변 반경): Haversine 공식 활용하기

Java 위도 경도에 따른 거리 계산(내 주변 반경)

Java를 사용하여 위도 경도로 거리 계산하기: 내 주변 반경 찾기

Java에서 두 지점 간의 거리를 계산할 때는 위도와 경도 좌표만으로 계산할 수 있습니다. 하지만 현재 위치 좌표 외에 여러 개의 좌표와 거리가 주어지고, 현재 위치를 기준으로 특정 반경 내에 있는 좌표들을 찾아야 할 때가 있습니다. 예를 들어, 사용자의 현재 위치를 기준으로 반경 5km 내에 있는 음식점을 찾는 기능을 구현해야 할 수 있습니다.

이러한 경우, 각 좌표와 현재 위치 간의 거리를 계산하여 반경 내에 있는지 확인해야 합니다. Java에서는 Haversine 공식을 사용하여 두 지점 간의 거리를 구할 수 있습니다. Haversine 공식은 지구의 표면을 구형으로 가정하여 두 지점 간의 거리를 계산하는 공식입니다.

Haversine 공식은 다음과 같습니다.

“`
a = sin²(Δlat/2) + cos(lat1) * cos(lat2) * sin²(Δlon/2)
c = 2 * atan2(√a, √(1−a))
d = R * c
“`

lat1, lon1: 첫 번째 지점의 위도와 경도
lat2, lon2: 두 번째 지점의 위도와 경도
R: 지구의 반지름 (약 6,371km)
Δlat: 두 지점의 위도 차이
Δlon: 두 지점의 경도 차이

Java 코드에서 Haversine 공식을 사용하여 두 지점 간의 거리를 계산하는 방법은 다음과 같습니다.

“`java
import java.lang.Math;

public class DistanceCalculator {

public static double calculateDistance(double lat1, double lon1, double lat2, double lon2) {
// 지구의 반지름 (km)
final double R = 6371;

// 위도와 경도를 라디안으로 변환
double latDistance = Math.toRadians(lat2 – lat1);
double lonDistance = Math.toRadians(lon2 – lon1);
lat1 = Math.toRadians(lat1);
lat2 = Math.toRadians(lat2);

// Haversine 공식 적용
double a = Math.sin(latDistance / 2) * Math.sin(latDistance / 2)
+ Math.cos(lat1) * Math.cos(lat2)
* Math.sin(lonDistance / 2) * Math.sin(lonDistance / 2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 – a));
double distance = R * c;

return distance;
}

public static void main(String[] args) {
// 현재 위치 (위도, 경도)
double currentLat = 37.5665;
double currentLon = 126.9780;

// 다른 좌표 (위도, 경도)
double otherLat = 37.5650;
double otherLon = 126.9800;

// 두 지점 간의 거리 계산
double distance = calculateDistance(currentLat, currentLon, otherLat, otherLon);

System.out.println(“두 지점 간의 거리: ” + distance + “km”);
}
}
“`

위 코드는 현재 위치와 다른 좌표 사이의 거리를 계산하는 예시입니다. calculateDistance 메소드는 Haversine 공식을 사용하여 두 지점 간의 거리를 계산합니다. main 메소드에서는 현재 위치와 다른 좌표를 입력받아 거리를 계산하고 결과를 출력합니다.

주의 사항: Haversine 공식은 지구의 표면을 구형으로 가정하여 계산하기 때문에 실제 거리와 약간의 오차가 발생할 수 있습니다. 더 정확한 거리를 계산하려면 다른 공식이나 API를 사용해야 합니다.

여기에서 더 많은 정보를 확인하세요: drrishisingh.com

Categories: 위도 경도 거리 계산: 간단하게 알아보는 방법과 활용 사례

See more: drrishisingh.com/religious