计算两个经纬度的距离

 

//计算距离

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 中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值