bd地图距离

108 阅读1分钟
function calculateDistance(lat1, lon1, lat2, lon2) {
    // 地球平均半径(单位:公里)
    const R = 6371;
    // 将经纬度转换为弧度
    lat1 = lat1 * (Math.PI / 180);
    lon1 = lon1 * (Math.PI / 180);
    lat2 = lat2 * (Math.PI / 180);
    lon2 = lon2 * (Math.PI / 180);
    // 使用大圆距离公式计算距离
    const d = 2 * R * Math.asin(Math.sqrt(Math.sin((lat1 - lat2) / 2) ** 2 + Math.cos(lat1) * Math.cos(lat2) * Math.sin((lon1 - lon2) / 2) ** 2));
    return d;
}