1. 程式人生 > >百度地圖 - 兩點座標計算 - JavaScript

百度地圖 - 兩點座標計算 - JavaScript

/**
 * 經緯度轉換成三角函式中度分表形式。
 * @param {*} d 座標
 */
function Rad(d) {
    return d * Math.PI / 180.0
}
/**
 * 計算兩個座標之間的距離
 * @param lng1 座標點1的經度
 * @param lat1 座標點1的緯度
 * @param lng2 座標點2的經度
 * @param lat2 座標點2的緯度
 * @return float
 */
function GetDistance(lng1, lat1, lng2, lat2) {
    let radLat1 = Rad(lat1);
    let radLat2 = Rad(lat2);
    let a = radLat1 - radLat2;
    let b = Rad(lng1) - Rad(lng2);
    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 = s * 6378.137; // 地球半徑,千米;
    s = Math.round(s * 10000) / 10000; // 輸出為公里
    // s = Math.round(s * 1000) / 1; // 單位修改為米,取整
    //s=s.toFixed(4);
    return s;
}