百度地图开发,计算两个点间直线距离js方法(忽略坐标系误差,同样适用于其他地图)

function Rad(d) {

    return d * Math.PI / 180.0; //经纬度转换成三角函数中度分表形式。
}
//计算距离,参数分别为第一点的纬度,经度;第二点的纬度,经度
function GetDistance(lat1, lng1, lat2, lng2) {
    var radLat1 = Rad(lat1);
    var radLat2 = Rad(lat2);
    var a = radLat1 - radLat2;
    var b = Rad(lng1) - Rad(lng2);
    var 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;
}
 
//使用方法
var pointA = new BMap.Point(120.1, 36.1);
var pointB = new BMap.Point(120.2, 36.);
 
var mile = GetDistance(pointA.lat, pointA.lng, pointB.lat, pointB.lng);
 
原文地址: https://www.opengps.cn/Blog/View.aspx?id=35 文章的更新编辑依此链接为准。欢迎关注源站原创文章!
posted @ 2020-03-23 12:49  溶洞  阅读(1101)  评论(0编辑  收藏  举报