天天看点

分享的山 换个地图打开成了海

Android开发中,偶然发现,用 百度地图分享出来的经纬度信息,再次用高德地图、腾讯地图打开,会出现几百米甚至几公里的偏移。 借用网络相关评论 分享出来的明明是山,换个地图打开变成海了 。

Android开发中,偶然发现,用

百度地图分享出来的经纬度信息,再次用高德地图、腾讯地图打开,会出现几百米甚至几公里的偏移。

借用网络相关评论

分享出来的明明是山,换个地图打开变成海了

一、现象

打开

百度地图

:在地图上选择一个地点,查看其经纬度坐标。

这里以我的老东家

网易北京研发中心

为例。

百度地图坐标拾取系统

,搜索框输入

网易北京研发中心

,获取经纬度坐标为:

116.282314,40.049229

分享的山 换个地图打开成了海

高德地图

,高德地图逆地理编码系统。

百度地图坐标拾取的经纬度信息

填入

高德地图逆地理编码系统

中,如下图所示,可以看到

定位地址大约出现了一公里的偏移

分享的山 换个地图打开成了海

腾讯地图

,腾讯位置服务系统。

百度地图坐标拾取的经纬度信息

腾讯位置服务系统

定位地址同样出现了大约一公里的偏移,但腾讯地图、高德地图最终的定位位置保持一致

分享的山 换个地图打开成了海

高德地图坐标拾取器

https://lbs.amap.com/demo/javascript-api/example/geocoder/regeocoding

百度地图坐标拾取器

http://api.map.baidu.com/lbsapi/getpoint/index.html

腾讯地图坐标拾取器

https://lbs.qq.com/getPoint/

猜想:

现象:

百度地图

分享出来的经纬度信息,用

高德地图、腾讯地图

打开出现了相同的

偏移量

;但

高德地图、腾讯地图

分享出来的经纬度信息,两者之前可以互相使用。

这里猜测:

高德、腾讯地图应该使用了同一套坐标系统;百度地图可能在该地图的基础上,使用了一套新的坐标系统,对坐标系主动进行了某种偏移操作。

二、坐标系

分别查询高德地图、腾讯地图、百度地图三家的开发者平台,发现:

高德地图、腾讯地图采用的是 GCJ02 坐标系

百度地图采用了 BD09 坐标系

那么 GCJ02、BD09 坐标系有什么区别?

想要了解 GCJ02、BD09 坐标系的区别,先了解一下国内主流的坐标系类型。

目前国内主流的坐标系类型有

WGS84、GCJ02、BD09

  • WGS84

    世界大地测量系统(World Geodetic System 1984)

    是一种用于地图学、大地测量学和导航(GPS全球定位系统)的大地测量系统标准。
  • GCJ02

    中国国家测量局02号标准(Guojia Cehui Ju 02)

    ,也称为

    火星坐标系

    。是中国国家测绘局制订的地理信息系统的坐标系统,是

    在 WGS84 经纬度的基础上执行加密算法而成

    。因

    GPS得到的经纬度

    直接

    在 GCJ02 坐标系下会定位到错误的地点

    ,有种到了火星的感觉,因此在

    坊间也将 GCJ02 戏称为火星坐标系

  • BD09

    百度坐标系

    ,百度

    在GCJ02坐标系基础上再次加密而成

国内主流地图默认采用的坐标系?

了解了各坐标系的大概定义,那么目前国内主流的地图都默认采用了什么坐标系统呢?

地图 大陆、港澳 台湾省 海外
百度 BD-09
高德 GCJ-02
腾讯

总结一句话:

中国大陆、港澳,使用GCJ02坐标系(百度除外,百度默认使用 BD09 坐标系);中国台湾省使用 WGS84 坐标系;海外地区使用 BD09 坐标系

以上表格数据依据:

百度地图数据依据

http://lbsyun.baidu.com/index.php?title=androidsdk/guide/coordtrans

分享的山 换个地图打开成了海

高德地图数据依据

https://lbs.amap.com/faq/advisory/others/39840/?wd=WGS84&cateId=&page=&detail=true

分享的山 换个地图打开成了海
分享的山 换个地图打开成了海

腾讯地图数据依据

https://lbs.qq.com/mobile/androidMapSDK/developerGuide/attention

分享的山 换个地图打开成了海
分享的山 换个地图打开成了海

三、坐标系转换

查看百度、高德、腾讯相关开发者平台,发现对应开发者平台均提供了

GCJ02、BD09、WGS84

相关的坐标系转化API。

百度地图

百度地图 坐标转化API:

分享的山 换个地图打开成了海

高德地图

高德地图 坐标转化API:

https://lbs.amap.com/api/android-sdk/guide/computing-equipment/coordinate-transformation/

分享的山 换个地图打开成了海

=== THE END ===

分享的山 换个地图打开成了海

继续阅读