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

news/2024/9/23 21:03:20/

【问题描述】

直接使用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 = longitudelet y = latitudelet x_pi = (3.14159265358979324 * 3000.0) / 180.0let 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.0065let lats = z * Math.sin(theta) + 0.006console.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官网


http://www.ppmy.cn/news/1435280.html

相关文章

浅谈免杀下的持久化

文章目录 前记注册表计划任务COM劫持后记reference 前记 实战中持久化的手段常用的就是加服务、添改注册表、加计划任务、劫持等,这里探索c/c下的维权免杀 注册表 用户级 \HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run \HKEY_CURRENT_USER…

【八股】计算机网络篇

网络模型 应用层【HTTP👉报文/消息】 传输层【TCP或UDP👉段👉MSS】网络层【IP、寻址和路由👉MTU】 ①IP(Internet Protocol,网际协议)主要作用是定义数据包的格式、对数据包进行路由和寻址&…

亚远景科技-什么是R.A.S.I.C角色职权矩阵

什么是 R.A.S.I.C角色职权矩阵 在流程定义过程中,亚远景科技推荐使用RASIC 矩阵。RASIC 矩阵是一个非常有用的管理方法。可以明确流程定义中的角色和其相关责任。 "RASIC" 是"Responsible" 、"Accountable" 、"Supportive"…

【Linux高性能服务器编程】两种高性能并发模式剖析——领导者/追随者模式

hello !大家好呀! 欢迎大家来到我的Linux高性能服务器编程系列之两种高性能并发模式介绍,在这篇文章中,你将会学习到高效的创建自己的高性能服务器,并且我会给出源码进行剖析,以及手绘UML图来帮助大家来理解…

nginx 配置 SSL 证书实现 https 访问

nginx 配置SSL证书实现https访问 1. SSL 证书简介与获取1.1 SSL 证书介绍1.2 获取 SSL 证书 2. nginx 配置 SSL 文件2.1 SSL 文件放置与配置文件修改2.1.1 文件配置2.1.2 强制 https 访问 2.2 验证配置结果 同步发布在个人笔记 nginx 配置 SSL 证书实现 https 访问 配置好 ngi…

虚拟DOM的发展趋势和潜在创新

虚拟DOM(Virtual DOM)技术是React框架的核心特性之一,它通过在内存中构建一个轻量级的DOM副本来提高页面性能。然而,虚拟DOM技术并非是完美无缺的,它仍然存在一些潜在的改进空间和发展方向。 性能优化:虚拟…

智能驾驶+网络安全

在智能驾驶场景下,安全问题一直是一个持续热点。 针对车机模块不被黑客利用Linux的漏洞攻击,可以采取以下几种方式来提高安全性: 安全设计和防护:在设计车机模块时,需要考虑安全性,并采取相应的安全防护措施…

QT——其他方式实现HelloWrold

QT——其他方式实现HelloWrold 使用输入框实现使用代码实现 通过按钮实现信号槽代码方式实现 我们之前对QT实现HelloWorld有了一些基本的了解,用了一些简单的方法实现了HelloWorld,如果对QT还不怎么了解的,可以点击这里: https://…