3sNews訊 為期兩天的2012地理信息開發(fā)者大會(簡稱:WGDC)在北京國家會議中心舉行,本次大會以“新技術(shù)、新模式、新商業(yè)”為主題,是地理信息領(lǐng)域最具影響力的技術(shù)性盛會,其宗旨是不斷引領(lǐng)和促進(jìn)地理信息技術(shù)的創(chuàng)新與變革。在第二天“Map+開發(fā)者訓(xùn)練營”分會場,百度地圖API產(chǎn)品經(jīng)理魏凱明發(fā)表了題為《LBS應(yīng)用開發(fā)的免費(fèi)大餐》的演講。
以下為文字實(shí)錄:
大家好,首先非常感謝今天能夠跟大家一起分享一下百度地圖API的一些開發(fā)知識。我是百度地圖API的產(chǎn)品經(jīng)理,我是魏凱明。今天主要給大家講的是百度地圖API的一些開發(fā)特性。首先給大家做一個(gè)廣告,大家關(guān)注一下我的新浪微博,http://weibo.com/baidudituapi。我今天的題目是《LBS應(yīng)用開發(fā)的免費(fèi)大餐》。我們在做LBS應(yīng)用的時(shí)候關(guān)注什么問題?LBS應(yīng)用天生就是跟位置相結(jié)合,作為位置應(yīng)用開發(fā),我們需要考慮怎么獲得位置,其次我獲得跟位置相關(guān)的信息,比如大量的位置點(diǎn)信息,還有我的位置信息如何存儲、檢索、計(jì)算等等,這些都是LBS開發(fā)者需要考慮的。如果這些問題都需要LBS應(yīng)用開發(fā)者自己來解決的話,到現(xiàn)在為止估計(jì)不會有任何一款LBS應(yīng)用開發(fā)出來。為什么呢?因?yàn)檫@涉及到很多關(guān)于地圖數(shù)據(jù)的收集、位置信息的收集和處理等各種各樣的服務(wù)能力。雖然存在這樣的問題,但是有沒有能夠解決這樣問題的辦法呢?而且還是不需要花錢的?免費(fèi)的?今天我就給大家推薦一下。我先吐槽吧,今天我告訴大家我們的免費(fèi)大餐來了。這是什么呢?就是我們百度地圖API。
我們先說一下什么是百度地圖API,其實(shí)這里不僅僅是API本身的概念,更多的是應(yīng)用開發(fā)的平臺,就是位置應(yīng)用的開發(fā)平臺,我們的定位是一個(gè)平臺,這種API的應(yīng)用方式,API和SDK本身并不面向最終用戶,我們的開發(fā)者在應(yīng)用的時(shí)候調(diào)用了API或者是SDK,開發(fā)了LBS應(yīng)用,把應(yīng)用提供給最終的用戶,這是對API和SDK的應(yīng)用模式。對于一個(gè)位置服務(wù)平臺來講我們最終有四大核心能力是必須提供的,首先就是數(shù)據(jù),作為LBS應(yīng)用來講,數(shù)據(jù)是非常關(guān)鍵的問題,比如你要做一個(gè)檢索周邊餐飲的信息,這些信息是從哪里獲得的?所以說數(shù)據(jù)是一個(gè)非常核心的問題。百度在數(shù)據(jù)方面有非常豐富的經(jīng)驗(yàn),因?yàn)榘俣仁亲鰯?shù)字搜索出身的,互聯(lián)網(wǎng)上可以獲得大量的信息。另外我們也跟圖商合作獲取圖商的數(shù)據(jù),還有我們的合作伙伴也給我們提供一些深入的信息,比如餐飲和酒店的一些點(diǎn)評等等。這里是地圖展現(xiàn)或者是表現(xiàn)的一個(gè)能力。還有是搜索,包括所有跟計(jì)算有關(guān)的能力,比如說POI的搜索,檢索附近的餐飲、酒店等等。還有包括路徑的計(jì)算,從國家會議中心到西二旗怎么坐公交車或者是開車怎么走。LBS應(yīng)用一個(gè)很關(guān)鍵的功能就是定位,這個(gè)功能在GIS里面不是特別重要,但是LBS應(yīng)用來講,定位是非?;A(chǔ)的功能,今天我們也會重點(diǎn)去講一下定位。
所有這幾個(gè)核心的能力,我們通過API和SDK的方式提供給不同的終端去服務(wù)?,F(xiàn)在很流行的一句話叫五屏一云,五屏就是指筆記本電腦、Pad、PC、智能電視、導(dǎo)航儀等等,只要是帶有屏幕的終端設(shè)備,我們認(rèn)為都需要LBS的服務(wù)能力,我們通過API和SDK的方式向終端設(shè)備提供這種服務(wù)。包括我們現(xiàn)在已經(jīng)在跟一些車的廠家進(jìn)行合作,給他們導(dǎo)航儀上提供一些地圖和檢索的服務(wù)。
我們看一下目前百度地圖API都有哪些菜品?今天咱們以吃為主。首先我們有一個(gè)靜態(tài)地圖API,大家如果研究過地圖API比較熟悉的話,就知道這是大概做什么的?,F(xiàn)在就是給我一個(gè)URL,傳一些參數(shù),我給你提供一些圖片,包括Android和IOS的SDK是做手機(jī)上的應(yīng)用開發(fā)的。還有定位的SDK,只是提供一個(gè)定位的功能。還有Ajax的API是在互聯(lián)網(wǎng)上Web應(yīng)用的。還有Flash的API,也是通過URL的方式,你傳參數(shù)給我,我把結(jié)果直接反饋給你。還有一些插件,我們提供一些擴(kuò)展庫,這些代碼是基于原有的API開發(fā)人員做的一些擴(kuò)展,這些代碼都是開源的,大家可以下載看一下,也是很好的學(xué)習(xí)的例子。我們的應(yīng)用訪問數(shù)量大概說一下,到目前為止,2012年6月份,所有使用百度API、SDK應(yīng)用數(shù)量大概已經(jīng)達(dá)到了6.5萬個(gè),這個(gè)增長趨勢也是比較快的。日PV大概是3800萬左右。
我為什么今天一定要講這是免費(fèi)的呢?因?yàn)樵谖覀兏_發(fā)者交流的過程當(dāng)中,不斷地有人問你們的API收費(fèi)嗎?我們需要不斷的解釋這個(gè)問題,百度地圖API、SDK都是免費(fèi)的。企業(yè)版、商業(yè)版、付費(fèi)版都是沒有的。不要問你們有付費(fèi)嗎?有商業(yè)版沒有?有企業(yè)版沒有?都沒有,其實(shí)我們只有一個(gè)版本,就是向開發(fā)者提供最大程度的開放,所有的功能都開放,都是免費(fèi)的,一視同仁的。
這里請大家在使用的過程當(dāng)中不要遮擋百度地圖API的LOGO,我都已經(jīng)免費(fèi)給你用了,就是群眾演員,你也得給我露個(gè)名字。而且還有一個(gè)關(guān)鍵的問題,如果你把LOGO遮擋之后,在互聯(lián)網(wǎng)地圖上來講,這是非法的地圖來源。百度LOGO不僅僅是地圖我們提供的,數(shù)據(jù)也是我們提供的,如果把這個(gè)LOGO擋住之后,就會被認(rèn)為是非法的互聯(lián)網(wǎng)服務(wù),會影響應(yīng)用的,所以大家不要遮擋這個(gè)百度地圖LOGO。
我們?yōu)槭裁匆_放API呢?實(shí)際上我們根據(jù)的目的就是建立開發(fā)者和百度,還有最終用戶開放共贏的生態(tài)系統(tǒng)。我們提供了API給你,LBS應(yīng)用開發(fā)者你們發(fā)揮你們的創(chuàng)意,發(fā)揮你們的創(chuàng)新能力,結(jié)合百度地圖的API,我們可以開發(fā)出很多精彩的LBS應(yīng)用。我們希望有越來越多的開發(fā)者使用我們的API,開發(fā)出更多的精彩應(yīng)用,這是我們希望建立這樣一個(gè)開放共贏的生態(tài)系統(tǒng),這是我們開放地圖API的一個(gè)初衷。
我們再分別詳細(xì)說一下具體開放的API的情況。首先是JavaScript API這是免費(fèi)的,我們的JavaScript API有什么新的特點(diǎn)呢?現(xiàn)在我們這個(gè)JavaScript API是支持PC和移動設(shè)備的,一套接口同樣支持兩套設(shè)備,不僅支持PC上的Web應(yīng)用,也支持移動上的Web應(yīng)用,可以用一個(gè)接口在不同的平臺上實(shí)現(xiàn)不同的功能。我們這里從新的版本開始已經(jīng)采用了HTML5的技術(shù),支持基于瀏覽器的定位,還有手持操作、硬件加速等等。這個(gè)定位服務(wù)實(shí)際上用的是瀏覽器的定位,在不同的瀏覽器上定位的效果是不一樣的,而且大多數(shù)瀏覽器的定位都比較差,這個(gè)并不是API本身的問題,因?yàn)閃eb API的調(diào)度只能使用瀏覽器的服務(wù)。
我們剛才說提供了一些開源的擴(kuò)展庫,這是我們開發(fā)人員精心編寫的一些代碼,在原有API的基礎(chǔ)上,結(jié)合一些比較共性的功能,我們?nèi)プ鲆恍U(kuò)展,這部分代碼都是開源的,大家可以隨便下載,拿去使用。而且這個(gè)代碼是非常好的一個(gè)學(xué)習(xí)的例子,大家可以看一下這個(gè)代碼都寫得比較精彩。JavaScript API是免費(fèi)的,不稀奇。
我們的Web服務(wù)API也是免費(fèi)的,Web服務(wù)API是通過HTTP接口的方式向用戶提供服務(wù)。這種API面向的是非Web的應(yīng)用,因?yàn)槿绻闶荳eb應(yīng)用的話可以直接使用JavaScript API,那個(gè)功能更多。對于一些非Web應(yīng)用以及其他的終端,包括一些導(dǎo)航設(shè)備等等,不能使用加速服務(wù)的這樣一些環(huán)境,你可以直接調(diào)動Web的API。目前我們提供的是POI搜索和Geocoding服務(wù),之后還可以提供路徑查詢、公交查詢的服務(wù)。有的人就會問了,你這個(gè)服務(wù)現(xiàn)在都是有次數(shù)限制的,現(xiàn)在這兩個(gè)服務(wù)的次數(shù)限制都是每天一千次,但是大家不要著急,這個(gè)限制的策略很快就會改變的,之后我們會提供新的服務(wù)策略,大家可以關(guān)注一下。
手機(jī)地圖SDK的作用是開發(fā)基于API的應(yīng)用的?,F(xiàn)在包括Android和iOS兩套平臺的SDK,包括地圖、搜索、路徑、公交等等,這個(gè)基本上跟JavaScript API的API功能是一樣的,但是它是用來開發(fā)衍生的一些應(yīng)用。這個(gè)API是內(nèi)置有定位功能的,你用了百度地圖、手機(jī)地圖的SDK的時(shí)候,你是內(nèi)置了定位服務(wù),這個(gè)定位服務(wù)是支持Wi-Fi,支持GPS定位的。我們的手機(jī)SDK是采用C內(nèi)核,Android也是采用C內(nèi)核,SDK的效率很高。但是缺點(diǎn)也是我們會帶一個(gè)大一點(diǎn)的SO庫,因?yàn)槲业膬?nèi)核都是用C來寫的,用Java做一些封裝,內(nèi)核效率比較高,體積也會更大。我們之后會針對一些功能縮減一些,提供可以定制的版本,你用哪些功能就加載哪些模塊?,F(xiàn)在手機(jī)的SDK支持衛(wèi)片疊加的功能,這是手機(jī)地圖SDK,也是免費(fèi)的。百度的SDK也是免費(fèi)的,這個(gè)就比較稀奇了。因?yàn)榇蠖鄶?shù)市場上來講,定位的SDK都不是免費(fèi)的,現(xiàn)在除了谷歌之外,百度是唯一一家提供免費(fèi)定位SDK服務(wù)的。
百度的定位服務(wù)是怎么實(shí)現(xiàn)的?在這里大概給大家介紹一下這個(gè)過程。其實(shí)很簡單,就是首先通過手機(jī)獲得定位的一些依據(jù),比如說手機(jī)聯(lián)網(wǎng)的話,肯定有一個(gè)基站的ID,如果你連的是Wi-Fi的話,你會得到Wi-Fi的外接地址,通過這些定位的依據(jù),在我的服務(wù)器端的數(shù)據(jù)庫當(dāng)中去檢索,我的服務(wù)器端數(shù)據(jù)庫當(dāng)中收集了大量的基站ID的IP地址和經(jīng)緯度之間的對應(yīng)關(guān)系,搜集了大量的數(shù)據(jù)。你把你的定位傳輸給我以后,我會給你反饋一個(gè)經(jīng)緯度,這是另外一個(gè)原理。這個(gè)原理很簡單,但是要想做到定位比較精確也很難。為什么?要看你的數(shù)據(jù)庫到底有多大,原理很簡單,很大程度上是依賴于定位的數(shù)據(jù)庫的。因?yàn)榘俣韧ㄟ^大量的跟合作伙伴,通過跟圖商去采集這種定位的數(shù)據(jù),包括通過一些應(yīng)用的方式去采集數(shù)據(jù)。這個(gè)采集的方式就跟BT下載一樣,用的人越多,定位的準(zhǔn)確度越高。
剛才說的是原理,百度定位SDK效果好,我在這里講的都是大實(shí)話。究竟好在哪里?第一是定位精度,我們平均定位精度是175米,這是結(jié)合了GPS、Wi-Fi、基站幾個(gè)平均的精度,定位比較粗的就是基站,Wi-Fi定位精確一些,可以達(dá)到幾十米,GPS更高,可以達(dá)到10米。基站的覆蓋率基本上超過95%,Wi-Fi的覆蓋率超過90%,我們每個(gè)月都會去看一下這個(gè)覆蓋的情況。這個(gè)定位的流量很小,一次大概就300字節(jié)左右定位一字。最后是速度很快,如果這個(gè)網(wǎng)絡(luò)比較通暢的情況下,少于一秒鐘就可以馬上得到一個(gè)定位的結(jié)果。在這里為什么講SDK的事情,iPhone本身的開發(fā)應(yīng)用不明顯,本身就帶有這個(gè)功能?,F(xiàn)在國產(chǎn)的行貨Android手機(jī)當(dāng)中都不用計(jì)算定位,因?yàn)閲a(chǎn)的手機(jī)當(dāng)中沒有谷歌的GMS服務(wù),谷歌的定位服務(wù)是在服務(wù)包里面,國產(chǎn)的行貨Android手機(jī)都沒有這個(gè)包,并不是大家流傳的說被閹割了等等,是因?yàn)檫@個(gè)手機(jī)服務(wù)的廠商沒有獲得谷歌的授權(quán),不能在手機(jī)當(dāng)中內(nèi)置GMS服務(wù)。如果你利用谷歌開發(fā)的SDK應(yīng)用,在水貨手機(jī)上做這個(gè)定位一點(diǎn)問題都沒有,但是在行貨手機(jī)上就有可能是定位不了的,這個(gè)情況我們遇到了很多。這個(gè)時(shí)候怎么解決?你可以找一個(gè)第三方的定位SDK,我當(dāng)然向大家推薦百度的定位SDK。
這個(gè)定位SDK效果這么好,使用起來也很簡單,分為三步。第一步是導(dǎo)入庫文件包,第二步是設(shè)置,第三步是編碼,其實(shí)很簡單。包括其他一些SDK的開發(fā)方式都大概是這三步。定位定位的編碼其實(shí)也不復(fù)雜,很簡單,大概給大家介紹一下。第一步要編寫一個(gè)事件監(jiān)聽函數(shù),因?yàn)槟愣ㄎ皇钱惒降倪^程,要通過定位的方式接收結(jié)果。要有一個(gè)事件監(jiān)聽臺,會給你一個(gè)BDLocation這樣一個(gè)結(jié)果,包括定位的經(jīng)緯度和半徑。還有如果你是GPS的話,有速度、有方向,如果有網(wǎng)絡(luò)連接的情況下,還可以返回一個(gè)地址。你在定位的同時(shí),你還可以獲得對于經(jīng)緯度地址的描述。如果在這里定位之后,直接可以獲得你在北京市海淀區(qū)北四環(huán)什么路的地址,不需要再調(diào)其他服務(wù)了,一個(gè)定位當(dāng)中這些結(jié)果都會返還給你,通過BDLocation的對象獲取這個(gè)信息。第一步要編寫一個(gè)事件監(jiān)聽函數(shù),第二步編寫完這個(gè)監(jiān)聽函數(shù)之后要注冊,第三步需要做一些設(shè)置,因?yàn)橛行┒ㄎ坏膮?shù),定位的一些策略是可以設(shè)置的,比如說你設(shè)置定位的一個(gè)頻度,還有是否用GPS定位,如果手機(jī)GPS打開的話,是否用GPS定位。還有就是返回地址,是不是一個(gè)詳細(xì)的地址信息等等,可以設(shè)置一些參數(shù)。然后需要啟動這個(gè)定位的線程,這樣這個(gè)定位就準(zhǔn)備完畢了。當(dāng)你需要做定位的時(shí)候,通過這樣一個(gè)方法,去觸發(fā)一下定位,如果結(jié)果正確的話,就會給你在事件函數(shù)當(dāng)中把結(jié)果返回來,如果錯(cuò)誤的話要做一些Log,下一步就完成了,這幾步很簡單。
后面是我們的一些合作伙伴,是使用百度地圖API和SDK的合作伙伴。我剛才講的這些內(nèi)容,包括對開發(fā)者的支持,這些信息從哪里獲得呢?在8月份我們將會有一個(gè)百度地圖新特性的發(fā)布,希望大家關(guān)注一下,這個(gè)新特性將會是一個(gè)比較顛覆性的新特性。我們在微博當(dāng)中會經(jīng)常發(fā)一些新版本或者是產(chǎn)品一些新的信息。我們的百度地圖API的網(wǎng)址在這里,developer進(jìn)去之后,再進(jìn)入開發(fā)支持,再進(jìn)入百度地圖API?,F(xiàn)在百度地圖API的入口比較深,我們之后也會在首頁上加一個(gè)出口,可以通過developer.baidu.com進(jìn)入開發(fā)平臺,然后再進(jìn)入百度地圖API。實(shí)在不行的話可以直接到百度首頁收縮百度地圖API,直接就可以進(jìn)入這個(gè)網(wǎng)站,大家什么也不需要記,搜索就可以了。
以上就是我今天要跟大家分享的關(guān)于百度地圖API的一些內(nèi)容,最關(guān)鍵的就是API是免費(fèi)的,以后大家不要再問百度地圖API是否收費(fèi),是否有商業(yè)版、企業(yè)版、付費(fèi)版,不要再遮擋百度地圖API的LOGO,大家有問題我們可以交流。
主持人:“下面時(shí)間交給現(xiàn)場觀眾,有人有什么問題嗎?”
問:“定位精度怎么樣?”
魏凱明:“平均的定位精度是175米。”
問:“有沒有做過加密處理?”
魏凱明:“有的。”
問:“國外的圖有嗎?”
魏凱明:“國外的圖暫時(shí)沒有,主要是國內(nèi),港澳,臺灣的圖馬上就要上線了。”
問:“這個(gè)偏移,以后跟別的技術(shù)怎么結(jié)合呢?”
魏凱明:“現(xiàn)在的偏移是這樣的,提供的坐標(biāo)肯定是偏移后的坐標(biāo),實(shí)際上百度有自己的偏移的算法,為了包括用戶的數(shù)據(jù)安全,你獲得的坐標(biāo)是百度地圖的坐標(biāo)。”
問:“假設(shè)我有坐標(biāo)系統(tǒng),可以有相應(yīng)的接口嗎?”
魏凱明:“你覺得呢?”
問:“有沒有更快捷的方式?”
魏凱明:“有一個(gè)擴(kuò)展庫,我們有一個(gè)封裝類,直接解決這樣的問題,直接原始的坐標(biāo)怎么樣在百度的地方標(biāo)注,已經(jīng)把這個(gè)封裝好了,可以直接用于擴(kuò)展的功能。”
問:“百度地圖有相應(yīng)的坐標(biāo)轉(zhuǎn)化的功能碼?”
魏凱明:“有的。”
問:“百度是否引用接口能把百度坐標(biāo)轉(zhuǎn)化到SDK02的坐標(biāo)?”
魏凱明:“這個(gè)真沒有。因?yàn)榘俣茸鴺?biāo)自己有一個(gè)坐標(biāo)的體系,其實(shí)是為了保護(hù)很多合作伙伴和開發(fā)者的數(shù)據(jù),其實(shí)你只要用我們的API的話,所有的坐標(biāo)在百度的體系上是沒有問題的,如果你用其他的坐標(biāo)器的話,我們業(yè)提供了轉(zhuǎn)化方法。
非常感謝各位,希望大家多多使用百度地圖API,謝謝各位!”
(以上內(nèi)容根據(jù)速記整理,未經(jīng)本人審核)
{{item.content}}