提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
提示:这里可以添加本文要记录的大概内容:
例如:做小程序,总会碰到需要计算用户与商家的距离,本文就介绍了计算用户与商家的距离内容。
提示:以下是本篇文章正文内容,下面案例可供参考
一、getLocation
获取当前的地理位置、速度。当用户离开小程序后,此接口无法调用
二、使用步骤
1.app.json 声明
代码如下(示例):
"permission": {
"scope.userLocation": {
"desc": "你的位置信息将用于展示你与商家距离"
}
},
2.实现代码
代码如下(示例):
getUserLocation: function () {
let that = this
wx.getLocation({ //拿到经纬度
type: 'gcj02',
//type参数默认为wgs84返回 gps 坐标,gcj02 返回可用于 wx.openLocation 的坐标
success: function (res) {
var latitude = res.latitude //纬度,范围为 -90~90,负数表示南纬
var longitude = res.longitude //经度,范围为 -180~180,负数表示西经
console.log("经纬度:latitude " + latitude + " ;longitude " + longitude) //这里获取的是经纬度坐标
// 计算两地之间的距离
let lat1 = latitude //获取的latitude
let lng1 = longitude //获取的longitude
let lat2 = that.data.list.latitude //商家latitude
let lng2 = that.data.list.longitude //商家longitude
console.log(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 = 6378137;
let p = (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)))).toFixed(0)
console.log(p)
that.setData({
mm: p
})
}
})
}
,
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了计算用户与商家的距离使用。
在这里插入图片描述