微信小程序 根据两个坐标点计算出两点之间的距离

核心代码:

  //进行经纬度转换为距离的计算
  function Rad(d){
       return d * Math.PI / 180.0;//经纬度转换成三角函数中度分表形式。
  }

  /*
   计算距离,参数分别为第一点的纬度,经度;第二点的纬度,经度
   默认单位km
  */
  export function getMapDistance(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 ;// EARTH_RADIUS;
    s = Math.round(s * 10000) / 10000; //输出为公里
    //s=s.toFixed(2);
    return s;
  }

调用:

const distance = getMapDistance(30.722558975219727,111.33262634277344,30.791611,111.310880);

距离:

console.log(`distance:${distance}`)
        // distance:7.9619

腾讯地图实测距离:

猜你喜欢

转载自blog.csdn.net/qq_35366269/article/details/107246386