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

更新日期: 2020-07-31 阅读次数: 692 字数: 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 中统一发起请求。

领取阿里云/腾讯云服务器优惠券

关于作者

我是来自山东烟台的一名开发者,喜欢瞎折腾,顺便记记笔记。有敢兴趣的话题,欢迎加微信 zhongwei 聊聊, 查看更多联系方式。 白天写程序,晚上哄熊孩子,可能回复有点慢,见谅。同时也欢迎关注我的微信公众号“大象工具”: 大象工具微信公众号

相关文章

爱评论不评论

近期节日

2020年12月01日 世界艾滋病日
2020年12月03日 国际残疾人日
2020年12月07日 大雪
2020年12月09日 "一二九"运动纪念日
2020年12月09日 世界足球日
2020年12月10日 世界人权日
2020年12月12日 西安事变纪念日
2020年12月13日 南京大屠杀
2020年12月20日 澳门回归日
2020年12月21日 国际篮球日
2020年12月21日 冬至
2020年12月24日 平安夜
查看更多节日