← 返回博客列表

百度地图两者经纬度距离计算

Vic.Wang2016/10/312521 阅读0 喜欢最近更新 2026/07/08 16:54:49

本文写于 2016 年,距今已有 10 年,文中提及的技术方案与接口可能已经过时,请注意甄别参考。

有个需求,需要根据百度地图的经纬度计算两个地点的距离是多少,自己写了个方法,如下:

根据经纬度计算距离:

//根据两者经纬度 计算距离
function distance(latA, lngA, latB, lngB) {
    if (latA*1 && lngA*1 && latB*1 && lngB*1) {
        var pk = 180 / 3.14169;
        var a1 = latA / pk,
            a2 = lngA / pk,
            b1 = latB / pk,
            b2 = lngB / pk;

        var t1 = Math.cos(a1) * Math.cos(a2) * Math.cos(b1) * Math.cos(b2);
        var t2 = Math.cos(a1) * Math.sin(a2) * Math.cos(b1) * Math.sin(b2);
        var t3 = Math.sin(a1) * Math.sin(b1);
        var tt = Math.acos(t1 + t2 +t3);

        return 6366000 * tt;
    }

    return 0;
}

计算出来的距离是米。

distance(120.134241, 30.271482, 120.139684, 30.269618); //613.6539808118416

算出来的距离和我用百度的测量工具测出来的距离是差不多的。

若有共鸣,不妨点个喜欢

本文地址:https://www.mingsixue.com/blog/detail/baidu-map-distance

分享:微博QQ空间X