小程序计算城市之间的距离

计算城市之间的距离

首先我们要获取当前位置的经度和纬度,直接调用小程序提供的api接口就可以了

 wx.getLocation({
      success: function (res) {
        that.setData({
          fromLng: res.longitude,
          fromLat: res.latitude
        })
      }
    })

根据你们后台返回数据的情况确定,如果直接返回经度和纬度那么就可以直接使用,如果返回的是地址如某某市某某区这样的,那么我们就需要逆解析地址,来获取经度和纬度
eg:

wx.request({
  url: 'https://apis.map.qq.com/ws/geocoder/v1/',
  data: {
    "key": "你的腾讯地图 key",
    "address": "目的地"
  },
  method: 'GET',
  success: function (res) {
    if (res.data.result) {
      const addressLocation = res.data.result.location;
      const courseLat = addressLocation.lat;//获取目的地的纬度
      const courseLng = addressLocation.lng;//获取目的地的经度
    } 
    that.setData({
      toLat: courseLat,
      toLng:courseLng 
    })
  }
}) 

定义一个函数用于计算距离(复制粘贴即可使用,注意传参的时候,经纬度别搞错了)

getDistance: function(lat1, lng1, lat2, lng2) {
  lat1 = lat1 || 0;
  lng1 = lng1 || 0;
  lat2 = lat2 || 0;
  lng2 = lng2 || 0;

  var rad1 = lat1 * Math.PI / 180.0;
  var rad2 = lat2 * Math.PI / 180.0;
  var a = rad1 - rad2;
  var b = lng1 * Math.PI / 180.0 - lng2 * Math.PI / 180.0;
  var r = 6378.137;
  var distance = r * 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(rad1) * Math.cos(rad2) * Math.pow(Math.sin(b / 2), 2)));
  
  return distance;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值