// 根据经纬度计算距离-米
// lat 维度
// lng 精度
getDistance(lat1, lng1, lat2, lng2) {
const radLat1 = lat1 * Math.PI / 180;
const radLat2 = lat2 * Math.PI / 180;
const a = radLat1 - radLat2;
const b = lng1 * Math.PI / 180 - lng2 * Math.PI / 180;
let 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) / 10;
return s;
},
// 判断两个圆是否有重合区域 如果返回true,表示有重合;返回false,表示无重合
// 通过计算两个圆是否有重合可以用来判断设定的电子围栏等场景是否有重复区域
isCircleOverlap(center1, radius1, center2, radius2) {
const distance = getDistance(center1[0], center1[1], center2[0], center2[1]);
return distance <= (radius1 + radius2);
},
【地图】根据经纬度计算两点之间的距离并判断两个圆是否有重合
于 2025-02-20 09:40:13 首次发布