国内地图 API 经纬度都不准吗?

2017-09-03 22:04:39 +08:00
 enginex

新手,最近做一个项目需要地理定位,使用的百度地图 JS API,发现它的浏览器定位与实际位置差了几十公里,即使用了百度的纠偏函数,效果也不明显,官方给出的解释是“因为目前浏览器 H5 定位功能的瓶颈限制,精度基本上是不可能到达 GPS 的级别的”。

试过高德的 JS API demo,也是一样的问题,因此很纠结。

后来无意中用了下 H5 原生的地理定位,发现位置出奇的准确,对比前后的输出,百度高德在一开始给到的经纬度上就有明显的误差,可惜因为众所周知的原因,原生的定位在国内不能用

感觉有点奇怪,不都是基于浏览器 H5 的定位吗,为何有如此偏差?政策?

另外想请教各位前辈,这个问题要如何解决?有更准确获取经纬度的方法吗?偏差实在太大

3743 次点击
所在节点    前端开发
9 条回复
learnshare
2017-09-03 22:28:00 +08:00
火星坐标 :)
weyou
2017-09-03 22:29:37 +08:00
google 关键字 火星坐标系统
imswing
2017-09-03 22:32:31 +08:00
火星坐标,而且 PC 端用浏览器定位确实不准。
Dibel
2017-09-03 23:21:25 +08:00
偏差如果达到了十几公里的话,基本可以排除火星坐标系( GCJ-02 )的影响,一般 GCJ-02 造成的偏差在 500 米左右
如果原生能够拿到准确的地理定位的话,建议用原生 API 先取出原始坐标,再使用百度 /高德提供的坐标转换 API 转换出正确的结果显示
wangxiaoer
2017-09-04 09:16:29 +08:00
因为你调用的所谓百度、高德 api 的定位接口不仅仅依赖浏览器自身定位,还会结合这些厂商自己的热点库在厂商服务器后台进行计算,热点量不够的话就不精确,会导致比纯浏览器定位精度还要低。

至于偏了十几公里,怀疑后台用了基于 ip 的粗略定位。
enginex
2017-09-04 13:01:27 +08:00
@learnshare @imswing @weyou 好的,我试下看看,感谢
enginex
2017-09-04 13:08:00 +08:00
@Dibel 原生 API 要 x 墙才能获取原始坐标,不然直接报错,难道项目要内置一个 x 墙服务?
enginex
2017-09-04 13:12:51 +08:00
@wangxiaoer 嗯,之前百度的高精度 IP 定位就是准的吓人,可惜现在不对外了
iappled
2018-12-03 23:22:28 +08:00
@enginex 为啥要 x qiang

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/387899

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX