背景
在获取与地理位置相关的数据时,需要传递用户当前位置的坐标。
api
https://developers.weixin.qq.com/miniprogram/dev/api/location/wx.getLocation.html
使用微信小程序位置 API 的注意事项
wx.getLocation 需要授权 scope.userLocation,并且必须在 app.json 中配置地理位置用途说明。例如,
"permission": {
"scope.userLocation": {
"desc": "您的位置信息将用于被您老婆随时监控"
}
}
wgs84 与 gcj02 坐标系的区别
在调用 wx.getLocation 时,可以传递 type 参数:
- wgs84 返回 gps 坐标,gcj02 返回可用于 wx.openLocation 的坐标
- 地图相关使用的坐标格式应为 gcj02
- 小程序开发工具中定位模拟使用IP定位,可能会有一定误差。且工具目前仅支持 gcj02 坐标。
说明:
- WGS84 坐标系。即地球坐标系,国际通用坐标系
- GCJ02 坐标系。即火星坐标系,WGS84坐标系加密后的坐标系;Google国内地图、高德、QQ地图使用
- BD09 坐标系。即百度坐标系,GCJ02坐标系加密后的坐标系
所以如果小程序服务后台使用的是高德的接口,前端就需要使用 gcj02 坐标系。
无法授权的情况
- 一种是用户拒绝授权
- 一种是分享朋友圈,打开之后,无法进行授权操作
所以需要兼容这种无法拿到坐标的情况。
可以在 success 回调函数中,setData,然后在 complete 中统一发起请求。
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式