Android下如何使用百度地圖sdk

來源:互聯網
上載者:User

百度地圖 Android SDK是一套基於Android 2.1(v1.3.5及以前版本支援android 1.5以上系統)及以上版本裝置的應用程式介面 

可以使用該套 SDK開發適用於Android系統行動裝置的地圖應用,通過調用地圖SDK介面,您可以輕鬆訪問百度地圖服務和資料,構建功能豐富、互動性強的LBS(地圖類)應用程式。

百度地圖Android SDK提供的所有服務是免費的,介面使用無次數限制。您需申請密鑰(key)後,才可使用百度地圖Android SDK。任何非營利性產品請直接使用。這弦外之音就是盈利的產品必須幫百度給錢。

一、百度地圖api平台。

百度地圖API網址:http://developer.baidu.com/map/sdk-android.htm

百度地圖開發步驟是

①擷取密鑰
②申請新密鑰及查看原先申請的密鑰
③開發指南 在安卓平台上使用百度地圖的開發指南
④類參考 地圖庫所提供的類及方法說明相關下載
⑤開發所使用的相關包及說明樣本下例

噥,這就是百度地圖的apk平台的介面:

首先,我們來申請key。

步驟也非常的簡單:

①點擊擷取密鑰 ②進入密鑰申請頁並閱讀相關的使用規定 ③勾選 已閱讀並同意條款 ④填寫應用程式名稱 填寫一下應用的相應功能及描述 ⑤輸入驗證碼確定後 ⑥密鑰即可申請成功

我申請的key如所示:

如何把申請下來的jar包匯入到項目中了。

一、在工程裡建立libs檔案夾(若不存在的話),將開發包裡的baidumapapi_v2_1_1.jar 拷貝到libs根目錄下,將libapp_BaiduMapApplib_v2_1_1.so和libvi_voslib.so 拷貝到libsarmeabi目錄下。

二、項目屬性中Java Build Path->Order and Export中,確定Android Private Libaries與Android Dependencies這兩項前面的選擇框被選上後,

三、點確定 菜單Project->clean重新編譯項目後就可以正常使用地圖中的功能進行編程了。

四、包中的liblockSDK3.1.jar及對應的so檔案是用於定位與搜尋功能的,如果不需要可以不加入到項目當中

jar包的架構如所示:

到入jar包的樣子也如所示:

在資訊清單檔下,要添加一下的許可權。

<supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true"  android:resizeable="true" android:smallScreens="true" />

對需要載入地圖的Activity進行屬性設定

<activity android:name="com.dfrz.map.DFRZMapActivity" android:configChanges="orientation|keyboardHidden|screenSize" android:label="@string/app_name" android:screenOrientation="sensor" > </activity>

這些準備工作做好以後,我們需要到入相應的map控制項

<com.baidu.mapapi.map.MapView android:id="@+id/bmapsView" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:clickable="true" />

上述xml的原始碼就是這個就是載入百度地圖的控制項框,這個布局你可以根據自己的需要進行調整,或是放置到你的Activity需要的地方去。此控制項需要接收到點擊事件,所以需要把clickable設定成true。

百度的地圖的原理就是這樣的。。。。。。。。。。。

地圖、定位、搜尋功能都需要用BMapManager對象來管理, BMapManager提供四個介面:init()、start()、stop()、destroy()。在應用程式裡產生BMapManager 對象並初始化,在程式退出時調用destroy(),在需要使用sdk功能的Activity的onCreate()方法裡調用start()方 法,onDestroy()方法裡調用stop()方法,或者onResume()/onPause()分別調用start()和stop()。 常用方法: destroy() : 在程式退出前調用  boolean init(java.lang.String strKey, MKGeneralListener  listener) 初始化地圖引擎,需要送入申請的百度地圖Key boolean start() :開啟百度地圖API  boolean stop(): 終止百度地圖API,調用此函數後,不會再發生回調。

MapView——百度地圖的顯示者。

一個顯示地圖的視圖控制項,當被焦點選中時,它能捕獲按鍵事件和觸摸手勢去平移和縮放地圖 setBuiltInZoomControls(boolean on):設定是否啟用內建的縮放控制項 getController():返回地圖的MapController,這個對象可用於控制和驅動平移和縮放 setDoubleClickZooming(boolean bDoubleClickZooming) : 設定mapview是否支援雙擊放大效果 getOverlays():擷取當時地圖控制項中的已有圖層 refresh(): 重新整理此地圖控制項。

怎麼用百度地圖實現了定位了,這就需要LocationClient

定位處理功能的核心類 registerLocationListener(BDLocationListener)接收到定位元據後可由指定監聽器中的 onReceiveLocation(BDLocation)的方法來接收相關的資料並做相關的處理 構造: new LocationClient(getApplicationContext()) setLocOption(LocationClientOption)設定定位的參數 start()啟動定位功能,此功能是持續的,可以定義間隔重新整理時間 stop()結束定位功能,但前面設定的定位參數不會消失,可以再啟動 requestLocation() 發起非同步定位請求,如果位置沒有變化,不會發起網路請求,直接返回上次的位置。(2次間隔需要大於1秒)

LocationClientOption  用於定位的操作的類。

設定定位功能的定位方式 disableCache(boolean) 真表示禁用緩衝定位 setOpenGPS(boolean) 是否使用GPS定位,前提是手機開啟了GPS定位 setAddrType(String) 當字串為"all"時返回此位置地址資訊,其它不返回 setCoorType(String) 設定返回座標的格式 gcj02 - 國測局 bd09百度墨卡托 bd0911百度經緯座標(手機預設) setScanSpan(int) 定時定位的時間間隔(ms) 此值大於1000時,每隔此值指定的時間就會發起一次定位 此值小於1000時或不設定此值時,調用一次requestLocation()方法則定位一次

這是我們需要定義mainactivity的類。相應原始碼:

protected void onDestroy() { mapView.destroy(); if (mapManager != null) { mapManager.destroy(); mapManager = null; } super.onDestroy(); }

有了這些準備以後,相應啟動並執行效果如下:

這就是android下百度地圖應用的大概步驟。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.