구글맵을 사용하다보면 위도와 경도로 실제 거리를 구해야할 때가 많은데요
public double calDistance(double lat1, double lon1, double lat2, double lon2){
double theta, dist;
theta = lon1 - lon2;
dist = Math.sin(deg2rad(lat1)) * Math.sin(deg2rad(lat2)) + Math.cos(deg2rad(lat1))
* Math.cos(deg2rad(lat2)) * Math.cos(deg2rad(theta));
dist = Math.acos(dist);
dist = rad2deg(dist);
dist = dist * 60 * 1.1515;
dist = dist * 1.609344; // 단위 mile 에서 km 변환.
dist = dist * 1000.0; // 단위 km 에서 m 로 변환
return dist;
}
// 주어진 도(degree) 값을 라디언으로 변환
private double deg2rad(double deg){
return (double)(deg * Math.PI / (double)180d);
}
// 주어진 라디언(radian) 값을 도(degree) 값으로 변환
private double rad2deg(double rad){
return (double)(rad * (double)180d / Math.PI);
}
[Java] JVM 이란. (0) | 2023.07.17 |
---|