js 中计算两个坐标点之间的距离

js 中计算两个坐标点之间的距离

// 两点间距离lat1,  lng1,  lat2,  lng2
api.getMapDistanceApi = (paramObj)=> {
    // console.log(paramObj)
    var lng1 = paramObj.lng1
    var lat1 = paramObj.lat1

    var lng2 = paramObj.lng2
    var lat2 = paramObj.lat2
    
    var radLat1 = lat1*Math.PI / 180.0;
    var radLat2 = lat2*Math.PI / 180.0;
    var a = radLat1 - radLat2;
    var  b = lng1*Math.PI / 180.0 - lng2*Math.PI / 180.0;
    var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2) +
    Math.cos(radLat1)*Math.cos(radLat2)*Math.pow(Math.sin(b/2),2)));
    s = s *6378.137 ;// EARTH_RADIUS;
    s = Math.round(s * 10000) / 10000;
    
    s = s * 1000
    
    if (isNaN(s)) {  
        return 0+'m';  
    }  
    
    if (s > 1000) {
        //    大于1000米时
        s = Math.floor(s/1000 * 100) / 100;
        s = s + 'km'
    } else {
        //    小于1000米直接返回
        s = s + 'm'
    }
    
    return s;
}
原文地址:https://www.cnblogs.com/vip-deng-vip/p/13409374.html