1. 程式人生 > >分享的山 換個地圖開啟成了海

分享的山 換個地圖開啟成了海

Android開發中,偶然發現,用`百度地圖分享出來的經緯度資訊,再次用高德地圖、騰訊地圖開啟,會出現幾百米甚至幾公里的偏移。`借用網路相關評論 `分享出來的明明是山,換個地圖開啟變成海了`。 ## 一、現象 開啟`百度地圖`:在地圖上選擇一個地點,檢視其經緯度座標。 這裡以我的老東家 `網易北京研發中心`為例。 開啟`百度地圖座標拾取系統`,搜尋框輸入 `網易北京研發中心`,獲取經緯度座標為:`116.282314,40.049229`。 ![百度地圖:網易北京研發中心在百度地圖上的經緯度](https://img-blog.csdnimg.cn/img_convert/c376fc353c265cffbdcadccd46e4aa33.png) 開啟`高德地圖`,高德地圖逆地理編碼系統。 將`百度地圖座標拾取的經緯度資訊`填入`高德地圖逆地理編碼系統`中,如下圖所示,可以看到`定位地址大約出現了一公里的偏移`。 ![高德地圖:百度地圖座標拾取的經緯度資訊 填入 高德地圖逆地理編碼系統](https://img-blog.csdnimg.cn/img_convert/f7614bbcb27c26ecd4b53220d218b90a.png) 開啟`騰訊地圖`,騰訊位置服務系統。 將`百度地圖座標拾取的經緯度資訊`填入`騰訊位置服務系統`中,如下圖所示,可以看到`定位地址同樣出現了大約一公里的偏移,但騰訊地圖、高德地圖最終的定位位置保持一致`。 ![騰訊地圖:百度地圖座標拾取的經緯度資訊 填入 騰訊位置服務系統](https://img-blog.csdnimg.cn/img_convert/f2f0b17dafa948b64694e20c62ce2a9b.png) [高德地圖座標拾取器](https://lbs.amap.com/demo/javascript-api/example/geocoder/regeocoding) [https://lbs.amap.com/demo/javascript-api/example/geocoder/regeocoding](https://lbs.amap.com/demo/javascript-api/example/geocoder/regeocoding) [百度地圖座標拾取器](http://api.map.baidu.com/lbsapi/getpoint/index.html) [http://api.map.baidu.com/lbsapi/getpoint/index.html](http://api.map.baidu.com/lbsapi/getpoint/index.html) [騰訊地圖座標拾取器](https://lbs.qq.com/getPoint/) [https://lbs.qq.com/getPoint/](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 | WGS84 | WGS84 | | 高德 | GCJ-02 | WGS84 | WGS84 | | 騰訊 | GCJ-02 | WGS84 | WGS84 | 總結一句話: `中國大陸、港澳,使用GCJ02座標系(百度除外,百度預設使用 BD09 座標系);中國臺灣省使用 WGS84 座標系;海外地區使用 BD09 座標系`; 以上表格資料依據: [百度地圖資料依據](http://lbsyun.baidu.com/index.php?title=androidsdk/guide/coordtrans) [http://lbsyun.baidu.com/index.php?title=androidsdk/guide/coordtrans](http://lbsyun.baidu.com/index.php?title=androidsdk/guide/coordtrans) ![百度地圖資料依據](https://img-blog.csdnimg.cn/img_convert/86b0257ba7912d8e48062187e97ca800.png) [高德地圖資料依據](https://lbs.amap.com/faq/advisory/others/39840/?wd=WGS84&cateId=&page=&detail=true) [https://lbs.amap.com/faq/advisory/others/39840/?wd=WGS84&cateId=&page=&detail=true](https://lbs.amap.com/faq/advisory/others/39840/?wd=WGS84&cateId=&page=&detail=true) ![高德地圖資料依據](https://img-blog.csdnimg.cn/img_convert/3ad723a31cf42cefd9ce0ed44f2d99a0.png) ![高德地圖資料依據](https://img-blog.csdnimg.cn/img_convert/720d023adca14d339d5d280954182b06.png) [騰訊地圖資料依據](https://lbs.qq.com/mobile/androidMapSDK/developerGuide/attention) [https://lbs.qq.com/mobile/androidMapSDK/developerGuide/attention](https://lbs.qq.com/mobile/androidMapSDK/developerGuide/attention) ![騰訊地圖資料依據](https://img-blog.csdnimg.cn/img_convert/97a2db59fc0195f8f4c6e0d362b61bdc.png) ![騰訊地圖資料依據](https://img-blog.csdnimg.cn/img_convert/9cd2ffb8268c41c77a26bee12e53430e.png) ## 三、座標系轉換 檢視百度、高德、騰訊相關開發者平臺,發現對應開發者平臺均提供了`GCJ02、BD09、WGS84`相關的座標系轉化API。 **百度地圖** [百度地圖 座標轉化API:](http://lbsyun.baidu.com/index.php?title=androidsdk/guide/coordtrans) [http://lbsyun.baidu.com/index.php?title=androidsdk/guide/coordtrans](http://lbsyun.baidu.com/index.php?title=androidsdk/guide/coordtrans) ![百度地圖 座標轉化API](https://img-blog.csdnimg.cn/img_convert/6605dbe591e3a85018cad356fee8474c.png) **高德地圖** [高德地圖 座標轉化API:](https://lbs.amap.com/api/android-sdk/guide/computing-equipment/coordinate-transformation/) [https://lbs.amap.com/api/android-sdk/guide/computing-equipment/coordinate-transformation/](https://lbs.amap.com/api/android-sdk/guide/computing-equipment/coordinate-transformation/) ![高德地圖 座標轉化API](https://img-blog.csdnimg.cn/img_convert/76e30306ee58bbbc36dd59d6c2ac7fff.png) ## === THE END === ![歡迎關注我的公眾號](https://img-blog.csdnimg.cn/img_convert/1c3c957f194c08fbc8dd89c6843e6f2f.png)