为什么谷歌地图定位标记会偏移?

如题所述

一、坐标系之间不兼容

GCJ-02坐标系又名“火星坐标系”,是我国国测局独创的坐标体系,由WGS-84加密而成,在国内,必须至少使用GCJ-02坐标系,或者使用在GCJ-02加密后再进行加密的坐标系,如百度坐标系。

高德和Google在国内都是使用GCJ-02坐标系,可以说,GCJ-02是国内最广泛使用的坐标系。在百度地图上定位的经纬度拿到高德地图上直接描点就肯定会发生偏移。只考虑国内的情况,高德地图和Google地图是可以不经过转换也能够准确显示的(在国内用的都是GCJ-02坐标系)。

二、国内外网络

在国内定位的经纬度,然后在国外网络下显示也会发生偏移(谷歌和高德会依据网络的情况选择使用WGS-84坐标还是GCJ-02坐标,百度地图则一直使用bd-02坐标系)。

三、定位方式

在iOS定位的经纬度是通过GPS获取的,在Android则可以通过网络或GPS获取经纬度。通过地图SDK定位获取的经纬度,地图SDK会自动选择加密的方式(如Google地图会根据国内国外选择不同的坐标系)然后再将点显示在地图上,这个时候是没有偏移的。

如果直接将经纬度在地图上显示,可能就会因为地域或网络的问题导致使用的坐标系不同,进而发生来偏移。

扩展资料

1992年,《中华人民共和国测绘法》通过。其中规定,在没有我国政府的许可下自行绘制我国地图是非法的。

我国不是唯一一个对地理数据和测绘有很多限制的国家。德国也要求德国电信公司和互联网公司把所有数据储存在国境内,俄国也要求把所有包含俄国公民的数据库放置在俄国境内。

根据国家测绘地理信息局2018年4月3日的官方数据,只有14家公司得到了政府的许可,可以绘制我国地图。这14家公司都是中国公司。现在还没有外国公司被允许在我国绘制地图。所以,谷歌一类的外国公司想要我国地图的话,就必须要和我国政府许可的公司,比如高德地图合作。

现在世界上的绝大多数国家在绘制地图时,使用的是一种叫做 WGS84 的坐标体系。WGS是世界大地测量系统(WorldGeodesicSystem)的缩写,84是说这个系统是在1984年建立的。我国使用的是一套叫做 GCJ-02 的编码系统,俗称火星坐标系。

火星坐标系会把真实的GPS坐标放到一套算法里处理一下,让它们偏移一丢丢距离,这样出来的坐标就不是真实的GPS坐标了。

实际上,在谷歌地图里,街道地图的坐标和卫星地图之间相差50-500米不等,方位不定,雅虎地图什么的也差不多。

就这样,2006年开始,google.cn把卫星地图也用火星坐标系系统调整了一下,让卫星地图和街道地图重合。

所以,现在如果在google.cn上查询卫星地图,就会发现它们看起来还“挺正常的”,但实际上,它们表示的依然不是真实的GPS坐标。

参考资料来源:百度百科-谷歌地图

温馨提示:答案为网友推荐,仅供参考
相似回答