Android開發(fā)(十)| 百度地圖應(yīng)用實(shí)例

有別于傳統(tǒng)的PC或Web領(lǐng)域的應(yīng)用,有一項(xiàng)技術(shù)是只有在移動設(shè)備上才能實(shí)現(xiàn)的。那就是基于位置的服務(wù)(Location Based Services)。

由于移動設(shè)備方便攜帶,我們通過定位技術(shù)就可以隨時(shí)得知自己所在的位置。圍繞這一點(diǎn)可以開發(fā)出很多實(shí)用有趣的應(yīng)用,上至軍事導(dǎo)航偵察,下至民間外賣送餐。

Where are you now?my friend.

· 借助百度地圖

現(xiàn)在手機(jī)地圖應(yīng)用已經(jīng)十分廣泛。和PC上的地圖相比,手機(jī)地圖能夠隨時(shí)隨地查看,并且輕松構(gòu)建出行路線。我們也完全可以在自己的Android應(yīng)用中加入地圖功能。

相比于谷歌地圖,百度地圖不僅提供了豐富的API,而且對使用沒有任何限制。所以我們就通過百度地圖將地圖功能引入到自己的程序中。

Baidu地圖默認(rèn)位置 北京市

本章導(dǎo)讀:

1)申請API Key

2)顯示出地圖

3)定位到當(dāng)前位置

4)讓我顯示在地圖上

【注:您可以選擇跳讀本文,收藏備需。另,下文截圖代碼均已上傳至云盤。】

一、申請API Key

在應(yīng)用程序中加入百度地圖前,必須先申請一個(gè)API Key。你得擁有一個(gè)百度賬號才能進(jìn)行申請,如果還沒有快先注冊一個(gè)吧。

然后,我們需要注冊成為一名百度開發(fā)者。打開網(wǎng)址:

http://developer.baidu.com/user/reg ,在這里填入“*”號部分的內(nèi)容即可。

注冊成為百度開發(fā)者

點(diǎn)擊提交,去郵箱驗(yàn)證一下就ok了。最后,訪問網(wǎng)站:

http://lbsyun.baidu.com/apiconsole/key,選擇同意百度開發(fā)者協(xié)議,會看到如下界面:

剛注冊的賬號,列表是空的。只要點(diǎn)擊創(chuàng)建應(yīng)用就可以申請API Key了。應(yīng)用名稱隨意,應(yīng)用類型選擇Android SDK,啟用服務(wù)保存默認(rèn)即可,如圖。

還剩一個(gè)發(fā)布版SHA1和包名,對嗎。點(diǎn)擊Eclipse導(dǎo)航欄的Window→Preferences→Android→Build,界面如圖:

24:2D:64:E1:0C:80:28:2A:48:56:A0:31:90:5E:D6:A1:CC:82:7E:8B 就是我們需要的SHAI指紋(當(dāng)然你的Eclipse中顯示的指紋肯定和我的不一樣)。

至于包名,就是我們創(chuàng)建的應(yīng)用程序包名。我建了一個(gè)project,命名為baiduTest2。包名就是 com.example.baidutest2。

將這兩個(gè)值填入網(wǎng)頁中對應(yīng)位置,點(diǎn)擊提交,就申請成功了。

毫無疑問,3QAgI5r6Bsc1SRZGE5upjPirAECgsbB6 就是申請到的API Key。有了它后續(xù)的地圖開發(fā)就一路順暢了。

二、顯示出地圖

建好工程,開始編碼前,還要做一件事:將百度地圖Android版的SDK準(zhǔn)備好,下載地址:http://developer.baidu.com/map/sdkandev-download.htm ,然后點(diǎn)擊一鍵下載。

下載完解壓,又有三個(gè)壓縮包。只需解壓Lib包,里面有我們需要的一切,如圖。

現(xiàn)在動動鼠標(biāo),將baidumpapi_v3_1_0.jar復(fù)制到項(xiàng)目libs目錄下。

然后在libs目錄下新建armeabi目錄,將libBaiduMapSDK_v3_1_0.so復(fù)制到新建目錄下。

順帶一提,libs目錄專門用于存放第三方Jar包;armeabi目錄專門用于存放so文件。so文件是用C/C++語言編寫的,再用NDK編譯而來。這兒的.so文件百度已經(jīng)編譯好,可以直接使用。

做了這么多準(zhǔn)備工作,終于要開始寫代碼了(敲黑板!) 修改activity_main.xml中的代碼:

十行代碼

在布局文件中,我們只放了一個(gè)MapView,它是百度提供的自定義控件,所以使用時(shí)要加上包名。

然后修改MainActivity中代碼:

這里的代碼也很簡單。注意一定要調(diào)用SDKInitializer的initialize()進(jìn)行初始化,并且要在setContentView()方法之前調(diào)用。

使用百度地圖還需要在AndroidManifest.xml中申明一堆權(quán)限,避免今后因權(quán)限不足導(dǎo)致程序崩潰。

已上傳至????

最后一步很重要,就是在AndroidManifest.xml中將上一小節(jié)申請到的百度API Key配置進(jìn)去。

配置API Key

注意,com.baidu.lbsapi.API_KEY 這個(gè)值是固定的哦?,F(xiàn)在運(yùn)行程序,百度地圖成功顯示出來了:

三、定位到當(dāng)前位置

下面的程序建議你最好在安卓手機(jī)上運(yùn)行,能得到真實(shí)的數(shù)據(jù)位置。不過,DDMS也提供了在模擬器中模擬地理位置的功能。

目前這還只是一張默認(rèn)的地圖,顯示北京市市中心的位置。那如何才能在地圖中快速定位到自己的位置?

希望讓地圖定位到某個(gè)經(jīng)緯度上,我們需要借助LatLng類,用于存放經(jīng)緯度值。

LatLng的構(gòu)造方法接收兩個(gè)參數(shù),分別是經(jīng)度值和緯度值。下面的代碼可以將地圖定位到指定的經(jīng)緯度:

北緯39.5度,東經(jīng)116.8度這個(gè)位置就被成功定位到了。

修改MainActivity中的代碼,加入定位到我的位置功能。關(guān)鍵就是將Location對象中的地理位置信息取出并封裝到LatLng對象中。(完整代碼請看文末)

關(guān)鍵部分代碼

筆者現(xiàn)在在浙江省臨安市。所以重新運(yùn)行一下程序,結(jié)果如圖:

當(dāng)前地理位置

四、讓我顯示在地圖上

我們平時(shí)使用手機(jī)地圖,上面應(yīng)該會有一個(gè)小光標(biāo)用于顯示設(shè)備當(dāng)前所在的位置。如果設(shè)備正在移動(比如人正在開車),那這個(gè)光標(biāo)也會跟著移動。

百度地圖的API當(dāng)中提供了一個(gè)MyLocationData.Builder類,用來封裝設(shè)備當(dāng)前位置。這個(gè)類又提供了一個(gè)build()方法,調(diào)用它生成一個(gè)“我的位置”實(shí)例。

只要將這個(gè)實(shí)例傳入BaiDuMap的相應(yīng)方法,設(shè)備位置就顯示在地圖上了?,F(xiàn)在對MainActivity做一些修改,將Location包含的經(jīng)緯度封裝:

核心代碼

為了使用百度地圖的這一功能,還要事先在初始函數(shù)onCreate()中將此功能開啟:

重新運(yùn)行程序,發(fā)現(xiàn)我真的在地圖上了!

“我”出現(xiàn)在了地圖上

地圖可以放大、縮小,現(xiàn)在用戶可以清晰地看出自己當(dāng)前是在哪兒。

掌握好以上知識,我們已經(jīng)成功入門了。關(guān)于百度地圖的用法還有很多很多,例如將普通地圖設(shè)置為衛(wèi)星地圖、查找路線等等。

衛(wèi)星地圖

若不滿足于當(dāng)前功能,很簡單!您可以上官網(wǎng)參考開發(fā)指南:

http://developer.baidu.com/map/sdk-android.htm


這一章介紹如何將百度地圖引用到自己的應(yīng)用程序中,今后我們就可以構(gòu)建功能豐富、交互性強(qiáng)的地圖類應(yīng)用程序了。

上述源碼已經(jīng)分類打包上傳,還加入了一些沒有提及的地圖功能,供您參考。請戳:《百度地圖應(yīng)用資料》下載查收。

掌握這些方法目前來看沒有捷徑,就是猛敲代碼,多上機(jī),多編程。發(fā)現(xiàn)問題,再逐個(gè)克服。一起加油吧!

我是葉琛

一只癡迷旅行的大三編程狗

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,030評論 25 709
  • 各位小伙伴們大家好,今天我向大家介紹一下蘋果百度地圖的使用方法,因?yàn)樽鲞^一些想關(guān)的APP,感覺百度地圖還是挺方便的...
    Lee0528閱讀 14,941評論 18 46
  • 一.百度地圖的使用 (一)顯示百度地圖的步驟有下面幾步: 下載SDK 加入lib中,依賴jar,并且依賴so文件 ...
    于加澤閱讀 4,703評論 1 8
  • 在人機(jī)交互之字符編碼 一文中對字符編碼進(jìn)行了詳細(xì)的討論,并通過一些簡單的小程序驗(yàn)證了我們對于字符編碼的認(rèn)識。但僅了...
    selfboot閱讀 2,489評論 0 2

友情鏈接更多精彩內(nèi)容