微信小程序 根据两个坐标点计算出两点之间的距离
原创
©著作权归作者所有:来自51CTO博客作者郭宝的博客的原创作品,请联系作者获取转载授权,否则将追究法律责任
核心代码:
//进行经纬度转换为距离的计算
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
腾讯地图实测距离: