微信小程序getLocation定位偏差问题

2021年5月11日13:23:17

首先是坐标系的问题

WGS84 :地理坐标系统,Google Earth和中国外的Google Map使用,另外,目前基本上所有定位空间位置的设备都使用这种坐标系统,例如手机的GPS系统。GCJ-02:投影坐标系统,也就是我们平常所说的火星坐标系,Google Map中国、高德和腾讯地图使用,这个是中国自己在WGS84基础上加密而成,目的显而易见。BD09:投影坐标系统,百度地图使用,在GCJ-02基础上二次加密而成。

国内各地图API坐标系统比较

API 坐标系
百度地图API 百度坐标
腾讯搜搜地图API 火星坐标
搜狐搜狗地图API 搜狗坐标
阿里云地图API 火星坐标
图吧MapBar地图API 图吧坐标
高德MapABC地图API 火星坐标
灵图51ditu地图API 火星坐标
当然你可以用过坐标转换来提高精度,但是
https://developers.weixin.qq.com/miniprogram/dev/api/location/wx.getLocation.html

wx.getLocation返回的精度只有五位数,相比其他地图API返回8-10位或者更多,即使转换也不是一个好办法

后台使用的是腾讯地图定位的gps,小程序默认返回的是wgs84,经过转换依然偏差还是很大,解决精度的办法就是

wx.getLocation({
 type: 'gcj02',
 success (res) {
   const latitude = res.latitude
   const longitude = res.longitude
   const speed = res.speed
   const accuracy = res.accuracy
 }
})

 即使开启高精度 isHighAccuracy: true 依然没什么屁用

gcj02的坐标就是腾讯本身使用的坐标体系,所以在微信接口内部转换的精度损失会很小,经过测试,基本定位精度会显示在0.01KM,基本不影响用户使用
参考
链接:https://www.jianshu.com/p/c39a2c72dc65

你可能感兴趣的:(定位,百度,腾讯,java,小程序)