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
鏈接:https://www.jianshu.com/p/c39a2c72dc65