小程序根据经纬度计算两点之间的距离km

1、设置初始化值

 data: {
    // 两地的距离
    distance: 0,
    //当前定位位置
    latitude: null,
    longitude: null,
    // 目的地坐标
    latitude2: 22.54311,
    longitude2: 114.057884,
  },

2、获取两地的距离值

  onLoad: function (options) {
    //获取当前位置
    wx.getLocation({
      type: 'gcj02',
      success: (res) => {
        const distance_new = this.getDistance(res.latitude, res.longitude, this.data.latitude2, this.data.longitude2);
        this.setData({
          distance: distance_new
        })
      }
    })
  },
// 计算距离函数
  Rad(d) {
    //根据经纬度判断距离
    return d * Math.PI / 180.0;
  },
  getDistance(lat1, lng1, lat2, lng2) {
    // lat1用户的纬度
    // lng1用户的经度
    // lat2商家的纬度
    // lng2商家的经度
    var radLat1 = this.Rad(lat1);
    var radLat2 = this.Rad(lat2);
    var a = radLat1 - radLat2;
    var b = this.Rad(lng1) - this.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;
    s = Math.round(s * 10000) / 10000;
    s = s.toFixed(1) + 'km' //保留两位小数
    console.log('经纬度计算的距离:' + s)
    return s
  },

在这里插入图片描述