개발 관련/JAVASCRIPT

두지점의 위도,경도 기준 최단거리 계산

riberio 2019. 11. 12. 14:48

/**
 * 두 지점간의 거리 계산 (기본 단위 : 마일)
 *
 * @param lat1 지점 1 위도
 * @param lon1 지점 1 경도
 * @param lat2 지점 2 위도
 * @param lon2 지점 2 경도
 * @param unit 거리 표출단위
 * @return
 */
function distance(lat1,lon1,lat2,lon2,unit) {
    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;
    
    if (unit == "kilometer") {
        dist = dist * 1.609344;
    } else if(unit == "meter"){
        dist = dist * 1609.344;
    }

    return dist;

function deg2rad(deg){
return (deg * Math.PI / 180.0);
}
function rad2deg(rad){
return (rad * 180 / Math.PI);
}