我们知道,由于臭名昭著的中国GPS偏移问题,GPS(WSG-84)地图坐标与国家批准的中国地图使用的坐标系(GCJ-02)不完全对应。
问题是,如何确保通过百度地图API在navigator.geolocation.getCurrentPosition()
报告的坐标处放置标记与现实相匹配?
在中国制造或批准使用的设备的GPS芯片是否会返回与用户实际位置不匹配的坐标,以匹配GJC-02地图?
用户运行的是中文导航器(如Maxthon或中文本地化的Google Chrome),还是非中文浏览器(如英文Firefox),这有关系吗?
这里有一个JSBin,它测试地理位置,并使用百度地图坐标转换API。不幸的是,我不在中国,所以我不能测试。
问题是:
上面的应用程序是否需要对从navigator.geolocation.getCurrentPosition()
获得的坐标进行百度坐标转换,才能在百度地图上正确显示位置?位于中国的人能测试吗?理想情况下,在中国制造的设备上使用中文浏览器,在非中文设备上使用非中文浏览器?
嗯。。。首先,他们似乎有一个API来做到这一点:原始gps定位到百度gps定位。我找不到文档,但我认为他们的jsfiddle(?)
可能会给你一个开始的想法。
截至设备和浏览器。。由于小米手机在美国运行良好,所以我猜安卓系统只是返回正常的原始GPS位置。此外,在美国手机上使用中文浏览器仍然能给我正确的定位。所以我认为浏览器也与这个转变无关。
希望这能有所帮助。