最近因為工作關系,對市面上主流的地圖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 ,在進行開發之前需要在其項目主頁上
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一一詳細介紹。
以上為個人不完全調查結果,僅供參考。