主流Map API 地圖API比較

NO IMAGE

 

最近因為工作關係,對市面上主流的地圖API都進行了一遍瞭解,現把文件同大家共享一下。我們對市面上幾款主流的地圖 API 服務提供商: Google 地圖服務, MapABC 地圖服務,微軟地圖服務,以及其他地圖服務進行技術調研,根據調研總結結果為我們選用更為符合需求的地圖服務提供商提供參考。
 

1. 調研內容計劃

   本次技術調研內容主要為:
1.        各類 MAP-API 使用方法 。 MAP-API 針對系統的開發效率的調查,比如在使用的合理性,封裝的便利性幾個方面。
2.        各類 MAP-API 的功能初步調研,各類 MAP-API 在免費版本中的功能限制調研,針對免費和收費版本的異同,收費策略和價格
3.        針對每種 MAP-API 以免費版本的 API 完成一個簡單的呼叫示例,也便於對每種 API 進行程式碼級別的使用體驗。

2. 調研詳細內容

2.1 GOOGLE MAP API 調研

2.1.1 . 主要使用方法介紹和評估:
   Google Map API 的種類和應用場景:
A.         Google JavaScript 地圖 API : 內嵌 Iframe 展現形式,適用於一般的網際網路應用系統,具有標準主流瀏覽器裝載的客戶端系統。支援的瀏覽器型別: ie , firefox , safari , google chrome 。使用標準的 Java 指令碼進行開發,可整合 google 地圖空間,與標準 google 地圖功能類似。
B.         Google Maps API(Flash 版 ) : FLASH 展現形式,使用 flex 繼續開發,適用於標準瀏覽器裝載的客戶端系統。‘
C.         Google 靜態地圖 API: 圖片:圖片展現形式,使用 http 介面進行圖片地圖的建立,所實現功能較前兩種少,但無需使用 java 指令碼實現,適用於手機或定製化客戶端系統的服務呼叫。靜態地圖和前兩種地圖相比還有個遵從每位檢視者每天的唯一(不同)影象請求不超過 1000 次的查詢限制配額,也就是說每個訪問者每天可以檢視 1000 個不同的地圖圖片,對於相同的圖片沒有限制,所以考慮到一般系統的訪問量,此配合即可滿足大部分系統的要求。
   評估:
     Google 提供的這三種 API 已經基本可以滿足大部分的系統需求,在開發難度上除 Flex 還不是主流技術,開發成本較高外,其他兩種技術在使用上都使用標準的網頁開發技術,介面難度係數不大,尤其是在靜態地圖 API 中,還提供了專門為手機所使用的 WAP 的地圖型別.
 
2.12. API 主要特性列表以及版本功能限制:
    Google Map API 的主要特性列表:
A.       地址解析(從地址名稱解析到具體經緯度)
B.       縮放級別的設定
C.       影象大小的設定
D.      標記新增
E.       地圖路徑顯示
(以上為 靜態地圖 和動態地圖 共有,以下為 動態地圖 獨有)
     F .事件監聽(監聽客戶端瀏覽器事件,並在需要接受的事件總定義處理方法)
     G.. 地圖控制元件(包括載入標準地圖控制元件以及建立自定義控制元件,比如可以自己加入標註的控制元件,切換地圖型別的控制元件,縮放地圖的控制元件等等)
     H. 街道全景物件
     I. 與 google earth 整合
     J. 交通功能(行車路線,出行模式,路線路段)
     K. 可與 Google AJAX API 整合開發,提高開發效率
      L. 支援 HTTPS 連線對 API 的訪問(企業版專有)
 
 
2.1.3 . 收費策略和商業限制:
    Google Maps Api 分為兩個版本,一個是免費版,一個是企業版。
    免費版不對使用者進行收費,但是對使用場景有一定的商業限制:
    A. 每天可發出的地址解析請求數有限制,遵從每位檢視者每天的唯一(不同)影象請求不超過 1000 次的查詢限制配額。
    B. 服務必須讓最後的使用者免費訪問。所以部分商業用途是符合使用條款的,以下兩種情況不能使用免費版:( 1 )僅付費客戶可以使用您的網站( 2 )僅可從您的公司或您的 Intranet 中訪問您的網站。 詳見 google api 的
使用條款
    C. 不能更改或遮蓋地圖上的徽標或歸屬內容。
  
   企業版除具有免費版的所有功能外,還會根據收費策略的不同,加強服務功能的提升並更改了一些商業限條款。這些增強點為:
A.       支援強大的服務級別協議( SLA )
B.       客戶服務支援
C.       增加了地址解析限制
D.      商業級應用限制的變更
E.       支援 HTTPS 連線對 API 進行訪問,達到資料保密的目的。
 
2.1.4 . 技術支援:
   免費版的技術支援包括 google code 的專業詳細的開發文件和 google 地圖 API 論壇的支援。
   企業版除上述支援外還有人工的客戶服務支援。
2.1.5.         Google MAP API 使用 :
   為了正常使用 google API ,在進行開發之前需要在其專案主頁上
http://code.google.com/intl/zh-CN/apis/maps/
下載 API 所需的金鑰。
Google Code上有很多map api的示例,講解的十分全面,這裡就不多說了。
 
總結: Google api 優勢: 充足的開發資源和文件資源,與 google map 平行的 api 功能,強大的自定義元件和控制元件功能。在靜態 API 中有針對 mobile 型別系統的地圖型別, API 操作簡單高效,符合一般性系統開發需求。

2.2 MAP ABC API 調研

2.2.1 . 主要使用方法介紹和評估:
   Map ABC API 的種類和應用場景:
A.      Ajax For Flash 地圖 API2&Ajax 搜尋 API : MapABC 只有一種 API 型別,就是基於 java 指令碼技術的內嵌 Flash 地圖展現形式,適用於一般的網際網路應用系統,具有標準主流瀏覽器裝載的客戶端系統。支援的瀏覽器型別:因為官方未公佈所支援的瀏覽器型別,所以本次調研測試了 ie , firefox 基本沒有問題,由於 MAPABC 使用的地圖展現載體是 flash ,所以理論上所有支援 flash 格式和 Javascript
的瀏覽器都可以使用。
B.       MAP ABC 靜態 API :通過 JAVA 指令碼進行靜態地圖的生成,主要應用場景在需要加快地圖載入,只是示意性進行地圖展示的系統中呼叫。
C.      MAP ABC 地圖元件 API :在原有 API 的基礎上進行封裝,簡化了開發複雜度,提高了開發效率。
   評估:
     MAP ABC 介面全部採用 java 指令碼進行呼叫,指令碼使用比較方便,但是生成的地圖格式為 flash 格式,暫不支援其他格式的地圖。至少目前為止廠商在免費版本還未提供基於服務端介面的地圖生成的 API ,企業版是單獨提供此類介面的。目前來看 MAPABC  API 還是著重於地圖 WEB 端的展示作用,從這點來看,比Google的免費版弱一些。
 
 
2.2.2 . API 主要特性列表以及版本功能限制:
    MAP ABC API 的主要特性列表:
A.       縮放級別的設定
B.       影象大小的設定
C.       標記新增
D.      地圖路徑顯示
     F .事件監聽(監聽客戶端瀏覽器事件,並在需要接受的事件總定義處理方法)
     G.. 地圖搜尋功能(地點搜尋,公交路線搜尋,行車路線搜尋)
     H. 地圖繪圖工具整合
     I. 地圖控制面板
     J. 靜態地圖生成功能
     K. 地圖元件封裝
 
2.2.3 . 收費策略和商業限制:
     MapABC Api 分為兩個版本,一個是公眾版,一個是企業版。
    免費版不對使用者進行收費,但是對使用場景有一定的商業限制:
    A. 使用 Map ABC API 服務,網站系統所提供給使用者的服務必須是開放給一般大眾使用且免費的服務 詳見 map abc api 的
API使用條款
    B. 不能更改或遮蓋地圖上的徽標或歸屬內容。
  
   企業版除具有公眾版版的所有功能外,還會增加一些定製服務和技術支援服務。這些增強點為:
D.      專業開發團隊的開發服務
E.       從前臺介面到後臺功能的定製開發
F.       有針對性的 MapABC 地圖 API 開發培訓
G.      快速響應的技術支援。
 
2.2.4 . 技術支援:
   免費版的技術支援包括 MAP ABC 網站文件以及 MAP ABC 地圖 API 論壇的支援。
   企業版除上述支援外還有人工的客戶服務支援。
2.2.5 MAPABC API 的使用
   為了正常使用 MAPABC API ,在進行開發之前需要在其專案主頁上
http://code.mapabc.com/v1/signup.shtml 下載 API 所需的金鑰。
示例程式可見其網站。
   

2.3 其他地圖服務 API 調研總結

 

     以上我們對國內國外兩種主流的地圖服務進行了技術調研,除此之外,市面上還有一些其他的地圖 API ,比如 51tidu , yahoo 地圖 API ,微軟 Virtual Earth API , MAPBAR 等。
      51ditu 和 Mapbar 同 MapABC 類似,都是國產地圖服務,其特點同 MapABC 類似,主要是不支援靜態地圖的服務端呼叫,全 JAVAscript 的呼叫方式,在 WEB 上呼叫方便,但介面靈活性差,並不合適 WAP 網站的開發。
       Yahoo 的地圖介面功能與 Google 類似,介面型別相比 google 更為方便和靈活,但是目前雅虎地圖 API 服務還不支援中國地圖,所以目前暫不考慮。如果以後開放了中國區地圖, Yahoo API 也是值得考慮的選擇。目前 Yahoo 地圖支援靜態地圖生成,同時每日的同一 ip 的訪問限制為 50000 次 .
微軟地圖 virtual map api 功能較為全面,介面設計靈活性與可封裝性也很好,同樣支援靜態地圖服務端生成,藉助微軟的 MSDN 社群的支援下,開發資源和文件也堪比 Google Maps ,但是由於此產品是微軟自有服務,保持微軟一貫的風格, virtual map 官方稱 只支援 ie6/ie7, 另外在呼叫速度上個人感覺比 Google API 也略遜一籌。同時在本次調研時,微軟的 live.cn 因為某些原因被 GFW 封掉了,因此同樣影響到了微軟地圖 API 服務 ditu.live.com,
類似的事件希望以後還是少發生為妙。
 
3 總結
 
大家根據初次調研比較結果,我們得到了以上的資料,目前相比較來看,從功能上和訪問速度上,以及各種資源的限制結合考慮,目前符合較為符合目前我們技術需求的是 Google Maps API 。它擁有強大的功能和較少的資源限制。
 
本次只是做了簡單的調研,結果不一定完全準確。只是給大家一個參考,大家在選擇和使用地圖的API上還是根據自己的需求進行選擇,複雜度不高的話,可以選擇免費的國外廠商的API,如果是複雜的企業應用,也可以選擇服務和支援力度較好的國內廠商的API及他們的定製服務。有機會我會將以上提到的API一一詳細介紹。
 
     以上為個人不完全調查結果,僅供參考。
—最近由於專案又要使用地圖,又做了一次調研,google是不敢用了,mapbar的免費功能還是少的可憐,mapabc介面也不多,目前正在研究微軟的地圖api,功能還是很全,建議大家目前首選,但是文件學習成本稍微有點兒高,沒有google和mapbar的開發文件那麼人性化。