计算两个经纬度的距离
程序员文章站
2024-02-14 22:59:28
...
//计算距离
Rad: function(d) {
return d * Math.PI / 180.0; //经纬度转换成三角函数中度分表形式。
},
//计算距离,参数分别为第一点的纬度,经度;第二点的纬度,经度
GetDistance: function(lat1, lng1, lat2, lng2) {
var radLat1 = this.Rad(Number(lat1));
var radLat2 = this.Rad(Number(lat2));
var a = radLat1 - radLat2;
var b = this.Rad(Number(lng1)) - this.Rad(Number(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(4);
s = s > 1 ? s.toFixed(2) + 'km' : (s * 1000).toFixed(2) + 'm'
return s;
},
// 通过forEach获取商品经纬度,且放在数组中
allArr.forEach(item => {
item.longitudeAndlat = that.GetDistance(myLaca[0], myLaca[1], laca[0], laca[1]);
});
通过 forEach 进行对 allArr 进行遍历,调用 GetDistance 方法,赋值到 longitudeAndlat 中
下一篇: 常用的Map遍历方式