新手,最近做一个项目需要地理定位,使用的百度地图 JS API,发现它的浏览器定位与实际位置差了几十公里,即使用了百度的纠偏函数,效果也不明显,官方给出的解释是“因为目前浏览器 H5 定位功能的瓶颈限制,精度基本上是不可能到达 GPS 的级别的”。
试过高德的 JS API demo,也是一样的问题,因此很纠结。
后来无意中用了下 H5 原生的地理定位,发现位置出奇的准确,对比前后的输出,百度高德在一开始给到的经纬度上就有明显的误差,可惜因为众所周知的原因,原生的定位在国内不能用
感觉有点奇怪,不都是基于浏览器 H5 的定位吗,为何有如此偏差?政策?
另外想请教各位前辈,这个问题要如何解决?有更准确获取经纬度的方法吗?偏差实在太大
1
learnshare 2017-09-03 22:28:00 +08:00
火星坐标 :)
|
2
weyou 2017-09-03 22:29:37 +08:00 via Android 1
google 关键字 火星坐标系统
|
3
imswing 2017-09-03 22:32:31 +08:00 via Android
火星坐标,而且 PC 端用浏览器定位确实不准。
|
4
Dibel 2017-09-03 23:21:25 +08:00
偏差如果达到了十几公里的话,基本可以排除火星坐标系( GCJ-02 )的影响,一般 GCJ-02 造成的偏差在 500 米左右
如果原生能够拿到准确的地理定位的话,建议用原生 API 先取出原始坐标,再使用百度 /高德提供的坐标转换 API 转换出正确的结果显示 |
5
wangxiaoer 2017-09-04 09:16:29 +08:00
因为你调用的所谓百度、高德 api 的定位接口不仅仅依赖浏览器自身定位,还会结合这些厂商自己的热点库在厂商服务器后台进行计算,热点量不够的话就不精确,会导致比纯浏览器定位精度还要低。
至于偏了十几公里,怀疑后台用了基于 ip 的粗略定位。 |
6
enginex OP |
8
enginex OP @wangxiaoer 嗯,之前百度的高精度 IP 定位就是准的吓人,可惜现在不对外了
|