关于微信服务号使用百度地图获取定位不准问题

896 阅读1分钟

问题:微信服务号使用百度地图sdk获取用户实时定位时,出现Android用户定位不准确,与实际定位偏差较大,ios用户定位正常

let geolocation = new BMap.Geolocation(); geolocation.enableSDKLocation(); 
geolocation.getCurrentPosition(current=>{
   console.log(current)
})

原因:百度地图sdk问题

解决:使用微信自带获取用户定位api wx.getLocation 后再将定位通过百度地图api转化成百度坐标系定位

目前国内主要有以下三种坐标系:
WGS84:为一种大地坐标系,也是目前广泛使用的GPS全球卫星定位系统使用的坐标系。
GCJ02:又称火星坐标系,是由中国国家测绘局制订的地理信息系统的坐标系统。由WGS84坐标系经加密后的坐标系。
BD09:为百度坐标系,在GCJ02坐标系基础上再次加密。其中bd09ll表示百度经纬度坐标,bd09mc表示百度墨卡托米制坐标。

注:百度地图接口获取到的定位信息是坐标系为BD09,与微信api获取的WGS84坐标系不同,所以需要通过百度地图的api将微信获取到的用户定位转为可在百度地图上展示的定位。