首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  前端开发

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

  •  
  •   enginex · 2017-09-03 22:04:39 +08:00 · 2239 次点击
    这是一个创建于 824 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    第 1 条附言  ·  2017-09-06 11:55:14 +08:00
    感谢各位,已使用 cordova 百度 SDK 插件代替 JS API 解决了问题,调用原生的定位就是准确啊
    9 回复  |  直到 2018-12-03 23:22:28 +08:00
        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   2017-09-04 13:01:27 +08:00
    @learnshare @imswing @weyou 好的,我试下看看,感谢
        7
    enginex   2017-09-04 13:08:00 +08:00
    @Dibel 原生 API 要 x 墙才能获取原始坐标,不然直接报错,难道项目要内置一个 x 墙服务?
        8
    enginex   2017-09-04 13:12:51 +08:00
    @wangxiaoer 嗯,之前百度的高精度 IP 定位就是准的吓人,可惜现在不对外了
        9
    iappled   2018-12-03 23:22:28 +08:00
    @enginex 为啥要 x qiang
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2195 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 23ms · UTC 15:18 · PVG 23:18 · LAX 07:18 · JFK 10:18
    ♥ Do have faith in what you're doing.