微信小程序获取用户当前位置的坐标经纬度

更新日期: 2020-07-31 阅读次数: 157 字数: 323 分类: 微信小程序

背景

在获取与地理位置相关的数据时,需要传递用户当前位置的坐标。

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 中统一发起请求。

爱评论不评论

近期节日

2020年08月15日 日本投降日
2020年08月22日 处暑
2020年08月25日 七夕
2020年09月02日 中元节
2020年09月03日 抗日胜利纪念日
2020年09月07日 白露
2020年09月08日 国际扫盲日
2020年09月10日 教师节
2020年09月16日 国际臭氧层保护日
2020年09月16日 世界清洁地球日
2020年09月18日 "九一八"事变纪念日
2020年09月20日 国际爱牙日
查看更多节日