我們在做微信開發是 有一些功能要定位操作 比如打卡類的
在這了里我們調用微信
使用微信內置地圖查看位置接口
wx.openLocation({ latitude: 0, // 緯度,浮點數,范圍為90 ~ -90 longitude: 0, // 經度,浮點數,范圍為180 ~ -180。 name: '', // 位置名 address: '', // 地址詳情說明 scale: 1, // 地圖縮放級別,整形值,范圍從1~28。默認為最大 infoUrl: '' // 在查看位置界面底部顯示的超鏈接,可點擊跳轉 });
獲取地理位置接口
wx.getLocation({ type: 'wgs84', // 默認為wgs84的gps坐標,如果要返回直接給openLocation用的火星坐標,可傳入'gcj02' success: function (res) { var latitude = res.latitude; // 緯度,浮點數,范圍為90 ~ -90 var longitude = res.longitude ; // 經度,浮點數,范圍為180 ~ -180。 var speed = res.speed; // 速度,以米/每秒計 var accuracy = res.accuracy; // 位置精度 } });
通過上面微信自己提供的地理位置接口 來獲取到地理位置
因此:
getLocation返回的坐標在openLocation有偏差,因為getLocation返回的是gps坐標,openLocation打開的騰訊地圖為火星坐標,需要第三方自己做轉換,6.2版本開始已經支持直接獲取火星坐標
要定位少很多的誤差就只用一下 getLocation 中 type: 'gcj02', 這個類型
wx.getLocation({ type: 'gcj02', // 默認為wgs84的gps坐標,如果要返回直接給openLocation用的火星坐標,可傳入'gcj02' success: function (res) { var latitude = res.latitude; // 緯度,浮點數,范圍為90 ~ -90 var longitude = res.longitude ; // 經度,浮點數,范圍為180 ~ -180。 var speed = res.speed; // 速度,以米/每秒計 var accuracy = res.accuracy; // 位置精度 } });