微信打開獲取定位信息不准問題


我們在做微信開發是 有一些功能要定位操作  比如打卡類的

在這了里我們調用微信

使用微信內置地圖查看位置接口

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; // 位置精度
    }
});

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM