微信小程序 已知两个坐标,计算距离算法

已知两个坐标,计算距离算法:

function getDistance(lat1, lon1, lat2, lon2) {
    const rad = (angle) => angle * Math.PI / 180.0;
    const earthRadius = 6371; // 地球半径,单位公里

    const dLat = rad(lat2 - lat1);
    const dLon = rad(lon2 - lon1);

    const a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
              Math.cos(rad(lat1)) * Math.cos(rad(lat2)) *
              Math.sin(dLon / 2) * Math.sin(dLon / 2);
    const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));

    return earthRadius * c; // 返回距离,单位公里
}

// 示例:计算两点距离
const distance = getDistance(39.9042, 116.4074, 31.2304, 121.4737);
console.log(distance); // 输出距离