js 地图两点距离计算

85 阅读1分钟
/**
 * 通过经纬度获取两点距离
 * @param lat1lng1
 * @param lat2lng2
 * @returns 距离单位 km
 */
const getDistance = function (lat1, lng1, lat2, lng2) {
    const radLat1 = (lat1 * Math.PI) / 180.0;
    const radLat2 = (lat2 * Math.PI) / 180.0;
    const a = radLat1 - radLat2;
    const b = (lng1 * Math.PI) / 180.0 - (lng2 * Math.PI) / 180.0;
    let 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 *= 6378.137; // EARTH_RADIUS;
    s = Math.round(s * 100) / 100;
    return s; // 调用 return的距离单位为km
};