小飛哥

          主流地圖API比較

          最近因?yàn)楣ぷ麝P(guān)系,對市面上主流的地圖API都進(jìn)行了一遍了解,現(xiàn)把文檔同大家共享一下。我們對市面上幾款主流的地圖 API 服務(wù)提供商: Google 地圖服務(wù), MapABC 地圖服務(wù),微軟地圖服務(wù),以及其他地圖服務(wù)進(jìn)行技術(shù)調(diào)研,根據(jù)調(diào)研總結(jié)結(jié)果為我們選用更為符合需求的地圖服務(wù)提供商提供參考。
           

          1. 調(diào)研內(nèi)容計劃

             本次技術(shù)調(diào)研內(nèi)容主要為:
          1.        各類 MAP-API 使用方法 。 MAP-API 針對系統(tǒng)的開發(fā)效率的調(diào)查,比如在使用的合理性,封裝的便利性幾個方面。
          2.        各類 MAP-API 的功能初步調(diào)研,各類 MAP-API 在免費(fèi)版本中的功能限制調(diào)研,針對免費(fèi)和收費(fèi)版本的異同,收費(fèi)策略和價格
          3.        針對每種 MAP-API 以免費(fèi)版本的 API 完成一個簡單的調(diào)用示例,也便于對每種 API 進(jìn)行代碼級別的使用體驗(yàn)。

          2. 調(diào)研詳細(xì)內(nèi)容

          2.1 GOOGLE MAP API 調(diào)研

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

          2.2 MAP ABC API 調(diào)研

          2.2.1 . 主要使用方法介紹和評估:
             Map ABC API 的種類和應(yīng)用場景:
          A.      Ajax For Flash 地圖 API2&Ajax 搜索 API : MapABC 只有一種 API 類型,就是基于 java 腳本技術(shù)的內(nèi)嵌 Flash 地圖展現(xiàn)形式,適用于一般的互聯(lián)網(wǎng)應(yīng)用系統(tǒng),具有標(biāo)準(zhǔn)主流瀏覽器裝載的客戶端系統(tǒng)。支持的瀏覽器類型:因?yàn)楣俜轿垂妓С值臑g覽器類型,所以本次調(diào)研測試了 ie , firefox 基本沒有問題,由于 MAPABC 使用的地圖展現(xiàn)載體是 flash ,所以理論上所有支持 flash 格式和 Javascript 的瀏覽器都可以使用。
          B.       MAP ABC 靜態(tài) API :通過 JAVA 腳本進(jìn)行靜態(tài)地圖的生成,主要應(yīng)用場景在需要加快地圖加載,只是示意性進(jìn)行地圖展示的系統(tǒng)中調(diào)用。
          C.      MAP ABC 地圖組件 API :在原有 API 的基礎(chǔ)上進(jìn)行封裝,簡化了開發(fā)復(fù)雜度,提高了開發(fā)效率。
             評估:
               MAP ABC 接口全部采用 java 腳本進(jìn)行調(diào)用,腳本使用比較方便,但是生成的地圖格式為 flash 格式,暫不支持其他格式的地圖。至少目前為止廠商在免費(fèi)版本還未提供基于服務(wù)端接口的地圖生成的 API ,企業(yè)版是單獨(dú)提供此類接口的。目前來看 MAPABC API 還是著重于地圖 WEB 端的展示作用,從這點(diǎn)來看,比Google的免費(fèi)版弱一些。
           
           
          2.2.2 . API 主要特性列表以及版本功能限制:
              MAP ABC API 的主要特性列表:
          A.       縮放級別的設(shè)置
          B.       圖像大小的設(shè)置
          C.       標(biāo)記添加
          D.      地圖路徑顯示
               F .事件監(jiān)聽(監(jiān)聽客戶端瀏覽器事件,并在需要接受的事件總定義處理方法)
               G.. 地圖搜索功能(地點(diǎn)搜索,公交路線搜索,行車路線搜索)
               H. 地圖繪圖工具集成
               I. 地圖控制面板
               J. 靜態(tài)地圖生成功能
               K. 地圖組件封裝
           
          2.2.3 . 收費(fèi)策略和商業(yè)限制:
               MapABC Api 分為兩個版本,一個是公眾版,一個是企業(yè)版。
              免費(fèi)版不對使用者進(jìn)行收費(fèi),但是對使用場景有一定的商業(yè)限制:
              A. 使用 Map ABC API 服務(wù),網(wǎng)站系統(tǒng)所提供給用戶的服務(wù)必須是開放給一般大眾使用且免費(fèi)的服務(wù) 詳見 map abc api 的 API使用條款
              B. 不能更改或遮蓋地圖上的徽標(biāo)或歸屬內(nèi)容。
            
             企業(yè)版除具有公眾版版的所有功能外,還會增加一些定制服務(wù)和技術(shù)支持服務(wù)。這些增強(qiáng)點(diǎn)為:
          D.      專業(yè)開發(fā)團(tuán)隊的開發(fā)服務(wù)
          E.       從前臺界面到后臺功能的定制開發(fā)
          F.       有針對性的 MapABC 地圖 API 開發(fā)培訓(xùn)
          G.      快速響應(yīng)的技術(shù)支持。
           
          2.2.4 . 技術(shù)支持:
             免費(fèi)版的技術(shù)支持包括 MAP ABC 網(wǎng)站文檔以及 MAP ABC 地圖 API 論壇的支持。
             企業(yè)版除上述支持外還有人工的客戶服務(wù)支持。
          2.2.5 MAPABC API 的使用
             為了正常使用 MAPABC API ,在進(jìn)行開發(fā)之前需要在其項目主頁上
          http://code.mapabc.com/v1/signup.shtml 下載 API 所需的密鑰。
          示例程序可見其網(wǎng)站。
             

          2.3 其他地圖服務(wù) API 調(diào)研總結(jié)

               以上我們對國內(nèi)國外兩種主流的地圖服務(wù)進(jìn)行了技術(shù)調(diào)研,除此之外,市面上還有一些其他的地圖 API ,比如 51tidu , yahoo 地圖 API ,微軟 Virtual Earth APIMAPBAR 等。
                51dituMapbarMapABC 類似,都是國產(chǎn)地圖服務(wù),其特點(diǎn)同 MapABC 類似,主要是不支持靜態(tài)地圖的服務(wù)端調(diào)用,全 JAVAscript 的調(diào)用方式,在 WEB 上調(diào)用方便,但接口靈活性差,并不合適 WAP 網(wǎng)站的開發(fā)。
                Yahoo 的地圖接口功能與 Google 類似,接口類型相比 google 更為方便和靈活,但是目前雅虎地圖 API 服務(wù)還不支持中國地圖,所以目前暫不考慮。如果以后開放了中國區(qū)地圖, Yahoo API 也是值得考慮的選擇。目前 Yahoo 地圖支持靜態(tài)地圖生成,同時每日的同一 ip 的訪問限制為 50000.
          微軟地圖 virtual map api 功能較為全面,接口設(shè)計靈活性與可封裝性也很好,同樣支持靜態(tài)地圖服務(wù)端生成,借助微軟的 MSDN 社區(qū)的支持下,開發(fā)資源和文檔也堪比 Google Maps ,但是由于此產(chǎn)品是微軟自有服務(wù),保持微軟一貫的風(fēng)格, virtual map 官方稱 只支持 ie6/ie7, 另外在調(diào)用速度上個人感覺比 Google API 也略遜一籌。同時在本次調(diào)研時,微軟的 live.cn 因?yàn)槟承┰虮?GFW 封掉了,因此同樣影響到了微軟地圖 API 服務(wù) ditu.live.com, 類似的事件希望以后還是少發(fā)生為妙。
           
          3 總結(jié)
           
          大家根據(jù)初次調(diào)研比較結(jié)果,我們得到了以上的數(shù)據(jù),目前相比較來看,從功能上和訪問速度上,以及各種資源的限制結(jié)合考慮,目前符合較為符合目前我們技術(shù)需求的是 Google Maps API 。它擁有強(qiáng)大的功能和較少的資源限制。
           
          本次只是做了簡單的調(diào)研,結(jié)果不一定完全準(zhǔn)確。只是給大家一個參考,大家在選擇和使用地圖的API上還是根據(jù)自己的需求進(jìn)行選擇,復(fù)雜度不高的話,可以選擇免費(fèi)的國外廠商的API,如果是復(fù)雜的企業(yè)應(yīng)用,也可以選擇服務(wù)和支持力度較好的國內(nèi)廠商的API及他們的定制服務(wù)。有機(jī)會我會將以上提到的API一一詳細(xì)介紹。
           
               以上為個人不完全調(diào)查結(jié)果,僅供參考。

          posted on 2010-03-04 15:40 小飛哥 閱讀(715) 評論(0)  編輯  收藏 所屬分類: 隨心所欲

          My Links

          News

          常用鏈接

          隨筆分類

          最新隨筆

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 沾化县| 稻城县| 鸡泽县| 通辽市| 汉源县| 兴山县| 九龙城区| 芷江| 原平市| 保定市| 三台县| 华容县| 遂宁市| 晋中市| 红河县| 周宁县| 东乌| 固原市| 北安市| 平罗县| 射阳县| 托克逊县| 延寿县| 彭州市| 孝义市| 睢宁县| 孟津县| 银川市| 黄大仙区| 都江堰市| 旬邑县| 清原| 兴海县| 乌鲁木齐县| 苏尼特右旗| 左权县| 察雅县| 南木林县| 金川县| 寿光市| 项城市|