核心代码:

  //进行经纬度转换为距离的计算
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

腾讯地图实测距离:

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