riberio
두지점의 위도,경도 기준 최단거리 계산 본문
/**
* 두 지점간의 거리 계산 (기본 단위 : 마일)
*
* @param lat1 지점 1 위도
* @param lon1 지점 1 경도
* @param lat2 지점 2 위도
* @param lon2 지점 2 경도
* @param unit 거리 표출단위
* @return double
*/
private double distance(double lat1, double lon1, double lat2, double lon2, String unit) {
double theta = lon1 - lon2;
double 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;
if (unit == "kilometer") {
dist = dist * 1.609344;
} else if(unit == "meter"){
dist = dist * 1609.344;
}
return (dist);
}
/**
* This function converts decimal degrees to radians
* @param double deg
* @return double
*/
private double deg2rad(double deg) {
return (deg * Math.PI / 180.0);
}
/**
* This function converts radians to decimal degrees
* @param double rad
* @return double
*/
private double rad2deg(double rad) {
return (rad * 180 / Math.PI);
}
'개발 관련 > JAVA' 카테고리의 다른 글
spring security remember me (자동로그인관련) (0) | 2019.11.07 |
---|---|
reflect 를 이용한 객체의 map 변환 (0) | 2017.04.11 |