國內各地圖API座標系統比較

本文系轉載,原文地址http://rovertang.com/archives/547

        在開始這個題目之前,先給大家再次掃掃盲,掃的不是座標系統的盲,而是我們國家所使用的座標系統。大家都知道,美國GPS使用的是WGS84的座標系統,以經緯度的形式來表示地球平面上的某一個位置,這應該是國際共識。但在我國,出於國家安全考慮,國內所有導航電子地圖必須使用國家測繪局制定的加密座標系統,即將一個真實的經緯度座標加密成一個不正確的經緯度座標,我們在業內將前者稱之爲地球座標,後者稱之爲火星座標,具體的說明可以參看百度百科中關於火星座標系統的解釋(文中的兩段還是對我原文的摘錄)。

        所以,本文所要討論的座標系統,是關於地球座標和火星座標的事情。以前使用Google Maps API開發習慣了,就覺得國外用地球座標國內用火星座標是共識,但由於Google服務常常被block的因素,加上還沒取得所謂的審圖號,所以改用國內地圖API,結果問題來了,並不是所有的地圖API都採用火星座標的。我用了一個下午的時間寫了個API示例,將地球座標和火星座標標註到地圖上去對比,具體大家可以訪問以下網頁自行查看差別:

http://rovertang.com/labs/map-compare/

結論是:

API 座標系
百度地圖API 百度座標
騰訊搜搜地圖API 火星座標
搜狐搜狗地圖API 搜狗座標*
阿里雲地圖API 火星座標
圖吧MapBar地圖API 圖吧座標
高德MapABC地圖API 火星座標
靈圖51ditu地圖API 火星座標

注1:百度地圖使用百度座標,支持從地球座標和火星座標導入成百度座標,但無法導出。並且批量座標轉換一次只能轉換20個(待驗證)。

注2:搜狗地圖支持直接顯示地球座標,支持地球座標、火星座標、百度座標導入成搜狗座標,同樣,搜狗座標也無法導出。

個人認爲:採用自家座標體系,而不採用國內通用的火星座標體系,實在是自尋短處。當然,百度是因爲做的足夠大、足夠好,所以很霸道,也爲以後一統天下而不讓別人瓜分之而做準備吧。搜狗雖然用自家座標體系,但能將地球座標直接導入,此舉也屬唯一。而圖吧地圖不知道學什麼加密方式,以前用地球座標用的好好的,現在用圖吧自己的座標,難道是因爲給百度做過所以也來了這麼一招?或者沿用百度?不得而知。

        本文的目的在於:做地圖開發的時候,不希望被一家地圖API遷就,所以採用火星座標是正確的選擇,希望本文能夠對選擇使用誰家API的開發者提供一點幫助吧。就我個人而言,我絕不會使用非火星座標系統的地圖API,雖然百度地圖API很好很強大確實很吸引我。

在做這幾個樣例的過程中,也同大家分享幾點個人感受:

1、MapBar和MapABC是需要綁定網站域名的。Google Maps API v3開始就不使用了key了,所以也希望更多的地圖API不要限制於地圖API key(手機開發或地圖接口應用倒是可以用key來關聯一下)。

2、兼容性仍然是個大問題。MapBar API在IE6下正常,Chrome和FireFox下有問題。MapABC我也調試了很久,最後在Chrome下還是有點問題。當然,還有更糟糕的地圖API(易圖通的myemap在Chrome下不顯示地圖,瑞圖的365地圖網在Chrome下錯位),我就沒有去嘗試了。

3、發現51ditu的地圖級別,是越詳細數字越小,和其他地圖API相反,同時,初始化地圖的時候若輸入一個超過層級的數字,則地圖不顯示,放大縮小不可操作,不知道這算不算是一個bug。

4、在移動設備上的兼容性未做測試,若把這一參數加上,也許又可以刷掉幾個地圖API。

雖然做了這些比較,但個人還未能完全拿定主意用哪個API來開發,不知道大家傾向於哪一家地圖API呢?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章