前言
最近在做小程序获取经纬度的功能,在使用getLocation遇到了一些问题。还有小程序判断GPS是否开启,系统是否给微信授予定位服务的功能,对于以上的问题做了一些总结。wx.getLocation文档链接
wx.geLocation
小程序中通过使用wx.getLocation获取当前的地理位置,需要用户主动授予权限。具体参数可查看官方文档。
wx.getLocation({
type: 'wgs84', // 返回Gps坐标
success (res) {
const latitude = res.latitude //纬度
const longitude = res.longitude //经度
}
})
在获取定位后,如果是在微信开发者工具中进行调试,会发现获取到的定位不够精确。按照官方的回复是工具上用的是模拟使用IP定位,而且只支持gcj02 坐标,会存在一定的误差。而且在实际的测试中发现gcj02会比wgs84会精确一些,所以建议使用gcj02.
重新授权
获取位置授权需要用户手动点击确定按钮授予权限,会出现用户拒绝授权,用户拒绝后就会影响到我们的业务逻辑,所以我们需要用户重新授予定位权限。
- 在wx.getLocation失败的回调中重新调起授权提示,主要是使用wx.getsetting()的API获取小程序授权情况,如果res.authSetting[‘scope.userLoca