react-native原生GPS与高德地图坐标,百度地图坐标系的转换

本文探讨了在使用React Native原生GPS获取定位信息时遇到的问题,比较了高德地图API与GPS坐标之间的差异。通过示例数据121.518828125,31.19265407986111(高德)和121.514452,31.194733(GPS),指出看似微小的差异可能并非定位误差。并提供了JavaScript版本的现成坐标转换代码,帮助开发者进行百度、高德和GPS坐标之间的转换。" 107568599,8621276,Rust实现操作系统内存管理:动态分配与物理内存探索,"['内核', '内存管理', 'rust']
摘要由CSDN通过智能技术生成

问题

今天用react-native原生GPS拿到得定位信息,如图:

在这里插入图片描述
之前高德地图取到的定位数据为(显示带有longtitude,latitude===的log)准确的

121.518828125,31.19265407986111

用原生GPS获取的数据为(显示为GPS++++++±====log)

121.514452,31.194733
发现只有小数后几位的区别,一直傻了吧唧的以为定位误差,看着也就差了几百米,其实是坐标系没有转换存在的误差

本质上是WGS-84与GCJ-02之间为转换导致的误差

## 现成的转换代码之javascript版本:

WGS-84:是国际标准,GPS坐标(Google Earth使用、或者GPS模块)
GCJ-02:中国坐标偏移标准,Google Map、高德、腾讯使用
BD-09:百度坐标偏移标准,Baidu Map使用

//WGS-84 to GCJ-02
GPS.gcj_encrypt();

//GCJ-02 to WGS-84 粗略
GPS.gcj_decrypt();

//GCJ-02 to WGS-84 精确(二分极限法)
// var threshold = 0.000000001; 目前设置的是精确到小数点后9位,这个值越小,越精确,但是javascript中,浮点运算本身就不太精确,九位在GPS里也偏差不大了
GSP.gcj_decrypt_exact();

//GCJ-02 to BD-09
GPS.bd_encrypt();

//BD-09 to GCJ-02
GPS.bd_decrypt();

//求距离
GPS.distance();

示例:
document.write("GPS: 39.933676862706776,116.35608315379092<br />");
var arr2 = GPS.gcj_encrypt(39.933676862706776, 116.35608315379092);
document.write("中国:" + arr2['lat']+","+arr2['lon']+'<br />');
var arr3 = GPS.gcj_decrypt_exact(arr2['lat'], arr2['lon']);
document.write('逆算:' + arr3['lat']+","+arr3['lon']+' 需要和第一行相似(目前是小数点后9位相等)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值