向玉云+高爽+陳云紅+黃嘉成+許新華
摘 要:隨著網(wǎng)絡日益發(fā)展及城市道路日益完善,地圖服務呈現(xiàn)多樣化趨勢,地圖開發(fā)產(chǎn)業(yè)得到長足發(fā)展,市場涌現(xiàn)出大量各有所長的地圖API。利用地圖開發(fā)商官網(wǎng)提供的資料,結合實際開發(fā)經(jīng)驗,將百度地圖API、高德地圖API、Google Maps API進行了比較研究,以幫助開發(fā)者開發(fā)出更加優(yōu)秀的地圖導航APP或Web網(wǎng)頁,幫助使用者按功能選擇地圖APP。
關鍵詞:API;百度地圖API;高德地圖API;Google Maps API
DOI:10.11907/rjdk.171478
中圖分類號:TP301 文獻標識碼:A 文章編號:1672-7800(2017)009-0019-03
Abstract:With the development of network and the city road is increasingly perfect, the map service began to appear its diversification, thus the development of the map industry has been promated.At the same time, a large of map APIs which have their own feature have poured into market.By consulting information provided by the official website and combining with our experience of development, the artical aims to compare Baidu map API,Google Maps API and lbs amap API with each other to help developers develop more excellent application or web which can be used to navigate.
Key Words:API; Baidu map API; Lbs Amap API; Google Maps API
0 引言
API(Application Programming Interface)即應用程序編程接口是預先定義的函數(shù),提供應用程序與開發(fā)人員訪問例程的能力,無需訪問源代碼或了解內部工作機制[1]。地圖API是一種通過Java等開發(fā)語言將地圖嵌入到網(wǎng)頁或應用程序中的API,這種API提供了大量實用工具用以處理地圖,并且可以通過各種服務向地圖添加內容[2]。本文對百度地圖API、高德地圖API以及Google Maps API進行比較研究。
1 三大地圖API簡介
1.1 百度地圖API
官網(wǎng)網(wǎng)址:http://developer.baidu.com/map/
使用條件:對于公眾服務類網(wǎng)站是免費的,非商用網(wǎng)站需要申請key,開發(fā)者使用時必須保留其logo。
API類型:移動應用版(包含Android版及iOS版)、Web瀏覽器版。
服務種類:定位、數(shù)據(jù)檢索、基礎地圖顯示、軌跡追蹤、數(shù)據(jù)云檢索、距離計算等。
1.2 高德地圖API
官網(wǎng)網(wǎng)址:http://lbs.amap.com/
使用條件:開發(fā)者需要申請密鑰且使用時必須保留其logo。
API類型:Java script版、移動版(iOS/Android/Windows phone/Windows 8)。
服務種類:基礎地圖顯示、室內地圖顯示、室內定位、POI精準搜索、周邊查詢、路線規(guī)劃等。
1.3 Google Maps API
官網(wǎng)網(wǎng)址:https://developers.google.com/
使用條件:開發(fā)者需美國法律允許,使用前需要申請密鑰,并在開發(fā)應用的“法律聲明”部分加入 Google Play 服務提供方說明文本??赏ㄟ^調用 GoogleApiAvailability.getOpenSourceSoftwareLicenseInfo 的方法取得提供方說明文本。
API類型:Web 瀏覽器版,移動類型(包括Android版和iOS版)并可通過 HTTP Web 服務使用。
服務種類:基礎地圖、3D建筑、室內平面圖和輕型模式、街景圖像、自定義標記、信息窗和聚合線等。
2 三大地圖API對比
2.1 開發(fā)環(huán)境及適用平臺
(1)API類型方面。三大地圖API都擁有JavaScript類型的API。Google擁有7種類型的API,高德?lián)碛?種類型的API[3],百度擁有4種類型的API。
(2)平臺適用方面。針對網(wǎng)絡平臺的適用性,百度地圖API和Google Maps API能在Windows、Mac、Linux的所有平臺中使用。高德地圖API支持大部分主流的網(wǎng)頁瀏覽器,不兼容IE瀏覽器6.0及以上版本和Firefox瀏覽器2.0及以上版本。但在移動平臺方面,高德地圖API顯然比Google Maps API以及百度地圖API更具優(yōu)勢。特別是它能很好地支持Android、iOS系統(tǒng)。
2.2 地圖操控及功能服務
在基礎地圖顯示方面,Google Maps API以7種視圖顯示效果榮居榜首。百度和高德都支持衛(wèi)星地圖及3D地圖。此外,在國產(chǎn)地圖API中,只有高德地圖API支持英文顯示。在對地圖的基本操作、顯示圖層以及服務等方面,高德地圖API和百度地圖API各領風騷,然而在鼠標運用和各類搜索上,前者明顯優(yōu)于后者 [4]。實時交通查詢功能方面,只有高德地圖API具有,可謂獨占鰲頭。endprint
在移動平臺上,以Android平臺以及iOS平臺為例,高德地圖API和百度地圖API明顯要比Google Maps API的操作性更強、功能更完善。此外,三者當中,只有高德地圖API支持矢量地圖顯示。
2.3 用戶群體比較
2.3.1 高德地圖API
正如高德官網(wǎng)所標榜的“各行各業(yè)都在用高德”那樣,如今高德地圖API已滲透到游戲、社交、電商、出行、O2O、運動、智能硬件等行業(yè),下面簡單列舉高德地圖API在各行業(yè)的合作案例:①游戲:陰陽師、球球大作戰(zhàn)、地球入侵、城市精靈Go;②社交:陌陌、微博、in、釘釘、映客;③電商:亞馬遜、淘寶、天貓、咸魚;④出行:滴滴出行、首汽約車、神州專車、易到用車、曹操專車、摩拜單車、ofo共享單車;⑤O2O:餓了么、美團外賣、美團、達達;⑥運動:樂動力、Keep、動動、咕咚;⑦智能硬件:大疆、阿巴町智能手表、Sonny Smart-BTrainer。
2.3.2 百度地圖API
與高德地圖API相比,百度地圖API滲透的行業(yè)也多達7個,有共享出行、LBS游戲、上門服務、物流配送、房產(chǎn)行業(yè)及智慧交通等,下面介紹百度地圖API在各領域的合作案例:①共享出行:小鳴單車、騎唄單車、智享單車、7號店單車、奇奇出行;② LBS游戲合作廠商:網(wǎng)易游戲、趣滿天下;③上門服務:e袋洗、愛鮮蜂、點到、一米鮮、小馬管家、百度外賣;④物流配送:百度外賣、貨拉拉、順豐速運、圓通速遞;⑤房產(chǎn)行業(yè):搜房網(wǎng)、小豬短租、百姓網(wǎng);⑥智慧交通合作案例:公安部交通管理科學研究所春運平安播報、中國交通運輸部出行云平臺、江蘇省交通運輸廳全要素合作、河南省交通運輸廳十一聯(lián)合發(fā)布;⑦商業(yè)地理:龍湖地產(chǎn)、萬科、悅薈萬科、IFS國際金融中心、McDonald、萬達電影、分眾傳媒、寧波市規(guī)劃設計研究院智能交通科技出行。
在共享單車模塊中,百度地圖API推出鷹眼軌跡SDK來幫助開發(fā)者展示與搜索附近可用單車。此外,百度地圖API采用Mavp大數(shù)據(jù)可視化庫以及百度慧眼大數(shù)據(jù)服務,輔助開發(fā)者對外展示產(chǎn)品數(shù)據(jù),分析城市人口,指導車輛投放,勾勒用戶畫像,分析客流來源去向。
2.3.3 Google Maps API
和高德地圖API以及百度地圖API相比,Google Maps API也滲透6個行業(yè),如出行、健身、物流風險評估、旅游住宿、飲食和攝影等方面。下面介紹Google Maps API在各行業(yè)的合作案例:①出行:CitiBike、Dash Harley Davidson、CDOT;②健身:lcon Fitness、Runtastic、Walk Score;③物流風險評估:Allstate;④旅游住宿:Airbnb、Expedia、The New York Time;⑤飲食:FoodSpotting、-Eleven;⑥攝影:Sun Surveryor。
2.4 功能結構對比
地圖API服務功能的多少、功能的便捷性以及用戶界面的人性化程度等因素左右用戶的體驗感,在地圖API功能評價中占據(jù)重要地位。
功能結構方面,百度地圖API、高德地圖API和Google Maps API均包含基礎地圖顯示類、控件類、服務類、基礎類、街景類,基本滿足用戶和開發(fā)者需求。
三大地圖不同之處:高德地圖API與百度地圖API包括云圖類,分別為高德云圖(AMap.CloudDataI.Layer云數(shù)據(jù)圖層)以及百度云圖,都是在LBS云服務基礎上,允許開發(fā)者將存儲在LBS云數(shù)據(jù)管理平臺中的數(shù)據(jù)作為一個圖層疊加到地圖上,同時能將經(jīng)過一定條件刪選出來的數(shù)據(jù)作為一個圖層加載到地圖上,高德AMap.CoudDataSearch云數(shù)據(jù)檢索服務,為開發(fā)者提供對已有數(shù)據(jù)的空白格建立檢索服務[5]。
2.5 性能分析
本文以LoadRunner為測試工具,并發(fā)用戶數(shù)為1 000,對百度地圖API和高德地圖API從加載地圖的平均事務響應時間、平均可用物理內存數(shù)以及平均吞吐量等方面進行測試,測試結果如表1所示(由于Google Maps API需要瀏覽國外網(wǎng)站,此處不進行分析)。其中,事務響應時間是用戶請求的開始時間和服務器響應請求并返回內容到客戶端所用的時間差值;吞吐量指在一次性能測試過程中網(wǎng)絡傳輸?shù)臄?shù)據(jù)量總和;平均可用物理內存越高,說明加載該地圖所耗用的物理內存數(shù)越少。
測試結果顯示,在平均事務響應時間方面,百度地圖API極具優(yōu)勢,其平均事務響應時間不超過20ms,相比而言,高德地圖API在此方面明顯處于下風,其平均事務響應時間達到40ms,幾乎是百度地圖API的兩倍;在平均可用物理內存方面,高德地圖API的平均可用物理內存處于1 440~1 460MB之間,而百度地圖API平均可用物理內存處于1 480~1 500MB之間,在平均可用物理內存上,百度地圖API略勝一籌;在平均吞吐量方面,百度地圖API與高德地圖API兩者不相上下,均在600 000字節(jié)/s左右[5]。
3 地圖API用法及關鍵代碼
三大地圖API使用方法大致相同。下面以高德地圖API的使用方法為例對三大地圖API的用法以及關鍵代碼進行說明。
3.1 申請Key
獲取Map API密鑰:
(1)在開發(fā)者電腦上獲取MD5指紋。在eclipse中打開“Window”→“preferences”命令,在對話框中選擇“Android”→“Build”,在右側Build面板中查看MD5指紋,如圖1所示。
(2)向高德地圖申請開發(fā)者key。輸入網(wǎng)址:http://lbs.amap.com/console/key獲取Key,如圖2所示。
3.2 工程配置
3.2.1 下載開發(fā)包endprint
高德官網(wǎng)目前給開發(fā)者提供了3D和2D地圖包,此處以3D地圖包為例。從高德官網(wǎng)(http://lbs.amap.com/)下載3D地圖開發(fā)包和搜索開發(fā)包并解壓。
(1)3D地圖包解壓后得到:3D地圖顯示包“AMap3DMap.jar ”和文件夾“ armeabi ”。
(2)搜索包解壓后得到:“AMap_Search_V2.x.x.jar”。
3.2.2 新建工程
打開eclipse,新建一個Android工程,開發(fā)工程中新建“ libs ”文件夾,將地圖包、搜索包、“ armeabi ”文件夾一同拷貝到 libs 的根目錄下??截愅瓿珊蟮墓こ棠夸洠ㄒ?D 地圖包為例)如圖3所示。
3.2.3 添加用戶key
在工程的“ AndroidManifest.xml ”文件中標簽下給value的值賦予用戶key,如下所示:
3.2.4 添加用戶權限
在新建工程的“ AndroidManifest.xml ”文件中添加用戶權限,代碼如下:
WRITE_EXTERNAL_STORAGE" />
4 結語
通過對百度地圖API、高德地圖API、Google Maps API三大地圖API的比較以及用法介紹,不難看出,高德地圖API對開發(fā)者人群的支持面更高,平臺適用性也更好。而在功能操作上,Google Maps API擁有多達7種類型的顯示視圖,給開發(fā)者提供了更多選擇。另外,網(wǎng)頁版地圖上百度地圖API的平臺性更好。綜上所述,三大地圖API各領風騷。
參考文獻:
[1] 百度百科.API [EB/OL]. [2017-2-23].https://wapbaike.baidu.com/item/api/10154?adapt=1&fr=aladdin&bk_share=shoubai&bk_sharefr=lemma#modile.qq.com.
[2] 穆穆.搜狗地圖開放API[J].現(xiàn)代廣告,2011(2):23.
[3] 劉輝,蘭梅,余洋.主流電子地圖API的綜合評價與分析[J].北京測繪,2015(6):5861.
[4] 360個人圖書館.幾大地圖API[EB/OL].[2017-2-23]. http://www.360doc.com/content/13/1008/09/3918892_319765453.shtml.
[5] 龍際夢,劉宏建,蔡忠祥,等.主流網(wǎng)絡地圖應用開發(fā)API技術研究[J].北京測繪,2015(3):3-4.endprint