解决 uniapp uni.getLocation 定位经纬度不准问题 您所在的位置:网站首页 苹果手机查找位置有时候偏差很大呢 解决 uniapp uni.getLocation 定位经纬度不准问题

解决 uniapp uni.getLocation 定位经纬度不准问题

2024-07-16 14:09| 来源: 网络整理| 查看: 265

【问题描述】

直接使用uni.getLocation获取经纬度不准确,有几百米的偏移。

【解决办法】

加偏移量

//加偏移 let x = longitude let y = latitude let x_pi = (3.14159265358979324 * 3000.0) / 180.0 let z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * x_pi) let theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * x_pi) let lngs = z * Math.cos(theta) + 0.0065 let lats = z * Math.sin(theta) + 0.006 console.log('加偏移经度:' + lngs + ',加偏移纬度:' + lats); //加偏移结束

完整代码

/** * 获取经纬度 */ getLocation(){ var that =this; uni.getLocation({ isHighAccuracy: true, // 开启地图精准定位 type: 'gcj02', // 坐标系类型 success: function (res) { var latitude = res.latitude; // 维度 var longitude = res.longitude; // 经度 console.log('经度:' + longitude + ',纬度:' + latitude); // that.form.LATITUDE = latitude; // that.form.LONGITUDE = longitude; //加偏移 let x = longitude let y = latitude let x_pi = (3.14159265358979324 * 3000.0) / 180.0 let z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * x_pi) let theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * x_pi) let lngs = z * Math.cos(theta) + 0.0065 let lats = z * Math.sin(theta) + 0.006 console.log('加偏移后经度:' + lngs + ',加偏移纬度:' + lats); //加偏移结束 console.log('当前位置的经度:' + lngs); console.log('当前位置的纬度:' + lats); console.log('当前速度:' + res.speed + '米/秒'); }, fail: function (res) { console.log('获取定位失败:' + res.errMsg); } }); },

 

【参考文档】

uniapp 定位:

uni.getLocation(OBJECT) | uni-app官网



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有