Android如何使用最新版本百度地圖地圖 SDK v4.2.1(一)的API

本篇通過一個簡單的示例一步步介紹如何在Android應用中使用百度地圖api。

一、下載百度地圖移動版API(Android)開發包

開發者可在百度地圖Android SDK的下載頁面下載到最新版的地圖SDK,可根據自己的需求下載自定義的Android SDKd的jar和Demo下載地址爲:http://developer.baidu.com/map/index.php?title=androidsdk/sdkandev-download

二、申請APP Key密鑰:

在使用百度地圖SDK爲您提供的各種LBS能力之前,您需要獲取百度地圖移動版的開發密鑰,該密鑰與您的百度賬戶相關聯。因此,您必須先有百度帳戶,才能獲得開發密鑰。並且,該密鑰與您創建的過程名稱有關,具體流程請參考如下介紹

Key的申請地址爲http://lbsyun.baidu.com/apiconsole/key

注意:

1. 每個Key唯一對應一個APP,如果您的APP修改了包名或者發佈的時候打包的簽名文件改變了,則改變前後的APP被視爲兩個APP。因此,多個APP【包括一份代碼多個包名打包】需申請多個與之對應的Key;

2. 在同一個工程中同時使用百度地圖SDK、定位SDK、導航SDK 和全景SDK的全部或者任何組合,可以共用同一個key;

3. 如果您在Android SDK開發過程中使用了LBS雲服務(如LBS雲檢索功能),則需要爲該服務單獨申請一個“服務端”類型的key,代碼中調用LBS雲服務接口時使用此key即可,注意:此key一定要和AndroidManifest.xml中配置API_KEY的key區分開;

4. Android SDK自v2.1.3版本開始採用了全新的Key驗證體系,v2.1.3之前的版本不再維護,如果升級到新版本SDK(v2.1.3及之後的版本)時需要在API控制檯重新申請key進行替換。

三、配置的環境及創建項目:

1)、Eclipse工程配置方法

第一步:在工程裏新建libs文件夾,將開發包裏的baidumapapi_vX_X_X.jar拷貝到libs根目錄下,將libBaiduMapSDK_vX_X_X.so拷貝到libs\armeabi目錄下(官網demo裏已有這兩個文件,如果要集成到自己的工程裏,就需要自己添加),拷貝完成後的工程目錄如下圖所示;

第二步:在工程屬性->Java Build Path->Libraries中選擇“Add External JARs”,選定baidumapapi_vX_X_X.jar,確定後返回。

通過以上兩步操作後,您就可以正常使用百度地圖SDK爲您提供的全部功能了。

注意:由於adt插件升級,若您使用Eclipse adt 22的話,需要對開發環境進行相應的設置,方法如下:

1. 在Eclipse 中選中工程,右鍵選 Properties->Java Build Path->Order and Export 使 Android Private Libraries處於勾選狀態;
2. Project -> clean-> clean all .

2)、Android Studio工程配置方法

第一步:導入百度地圖SDK 的jar和so包到項目:在工程app/libs目錄下放入從“百度地圖開放平臺官網API”下載的jar包(注:需要選擇jar包右鍵鼠標進行依賴jar包),在src/main/目錄下新建jniLibs目錄放入百度地圖開放平臺官網API下載的so包如下圖所示,工程會自動加載src目錄下的so動態庫,,注意jar和so的前3位版本號必須一致,並且保證使用一次下載的文件夾中的兩個文件,不能不同功能組件的jar或so交叉使用。


so的配置也可以參考demo給出的目錄結構,在app工程路徑下,新建libs,並在libs目錄下放入對應不同CPU架構的so文件。這樣工程並不會自動加載libs下的so,需在gradle編譯時,通過加入代碼: jniLibs.srcDir 'libs' 來說明so的路徑爲該libs路徑。

第二步:工程配置還需要把jar包集成到自己的工程中,如圖上圖所示,放入libs目錄下。對於每個jar文件,右鍵-選擇Add As Library,導入到工程中。對應在build.gradle生成工程所依賴的jar文件說明,如圖所示:

jar的配置也可參考eclipse方法,進行以下操作:
1.菜單欄選擇 File —>Project Structure。
2.在彈出的Project Structure 對話框中, 選擇module, 然後點擊 Dependencies 選項卡.點擊綠色的加號選擇File dependency. 然後選擇要添加的jar包即可 完成上邊的操作後在app目錄下的build.gradle文件中,會有引入的類庫。

如有不太懂可以到百度官網搜索:http://lbsyun.baidu.com/index.php?title=androidsdk/guide/buildproject

四、對新創建的項目添加百度地圖相關的配置

百度地圖SDK爲開發者提供了便捷的顯示百度地圖數據的接口,通過以下幾步操作,即可在您的應用中使用百度地圖數據:

第一步:創建並配置工程(具體方法參見工程配置部分的介紹);

第二步:在AndroidManifest中添加開發密鑰、所需權限等信息;

(1)在application中添加開發密鑰APP Key

 <meta-data
            android:name="com.baidu.lbsapi.API_KEY"
            android:value="您的APP Key" />

2)添加所需權限

    <uses-permission android:name="android.permission.ACCESS_GPS" />
    <uses-permission android:name="android.permission.READ_LOGS" />
    <!-- 這個權限用於進行網絡定位 -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <!-- 這個權限用於訪問GPS定位 -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <!-- 用於訪問wifi網絡信息,wifi信息會用於進行網絡定位 -->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <!-- 獲取運營商信息,用於支持提供運營商信息相關的接口 -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!-- 這個權限用於獲取wifi的獲取權限,wifi信息會用來進行網絡定位 -->
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <!-- 用於讀取手機當前的狀態 -->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <!-- 寫入擴展存儲,向擴展卡寫入數據,用於寫入離線定位數據 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <!-- 訪問網絡,網絡定位需要上網 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <!-- SD卡讀取權限,用戶寫入離線定位數據 -->
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
    <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.GET_TASKS" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />

    <!-- 來電消音 -->
    <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <!-- 攝影機 -->
    <uses-permission android:name="android.permission.CAMERA" />
注:定位SDKv3.1版本之後,以下權限已不需要,請取消聲明,否則將由於Android 5.0多帳戶系統加強權限管理而導致應用安裝失敗:<permission android:name="android.permission.BAIDU_LOCATION_SERVICE"/>
3)、添加對屏幕的支持 (實時定位) 
<supports-screens
        android:anyDensity="true"
        android:largeScreens="true"
        android:normalScreens="true"
        android:resizeable="true"
        android:smallScreens="true" />
4)、在Application標籤中聲明SERVICE組件,每個APP擁有自己單獨的定位SERVICE
<service
            android:name="com.baidu.location.f"
            android:enabled="true"
            android:process=":remote">
            <intent-filter>
                <action android:name="com.baidu.location.service_v2.2" />
            </intent-filter>
        </service>
第三步:在自定義類繼承Application應用程序創建時初始化 SDK引用的Context 全局變量
 //在使用SDK各組件之前初始化context信息,傳入ApplicationContext
        SDKInitializer.initialize(getApplicationContext());



注意:在SDK各功能組件使用之前都需要調用

SDKInitializer.initialize(getApplicationContext());,因此我們建議該方法放在Application的初始化方法中


第四步:在佈局xml文件中添加地圖控件;
<com.baidu.mapapi.map.MapView
        android:id="@+id/bmapView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:clickable="true" />

完成以上步驟後,運行程序,即可在您的應用中顯示如下地圖:

android_dev2.jpg



Android SDK歷史版本開發包 (需要的童鞋們可以自行下載):
v3.0.0版本資源包  BaiduMap_AndroidSDK_v3.0.0_All.zip (4.26 MB, 下載次數: 144667) 

v3.1.0版本資源包  BaiduMap_AndroidSDK_v3.1.0_All.zip (4.34 MB, 下載次數: 226340) 

v3.1.1版本資源包  BaiduMap_AndroidSDK_v3.1.1_All.zip (4.88 MB, 下載次數: 249817) 

v3.2.0版本資源包  BaiduMap_AndroidSDK_v3.2.0_All.zip (4.82 MB, 下載次數: 219005) 

v3.3.0版本資源包  BaiduMap_AndroidSDK_v3.3.0_All.zip (5.75 MB, 下載次數: 60940) 

v3.4.0版本資源包  BaiduMap_AndroidSDK_v3.4.0_All.zip (5.75 MB, 下載次數: 878287) 

v3.5.0版本資源包  BaiduMap_AndroidSDK_v3.5.0_All.zip (5.45 MB, 下載次數: 1861) 

v3.6.0版本資源包  BaiduMap_AndroidSDK_v3.6.0_All.zip (7.04 MB, 下載次數: 3534) 

v3.7.3版本資源包:http://pan.baidu.com/s/1gfx6Wxl
【3.7.0->3.7.3 變 更 】
[ 檢 索 功 能]
爲兼容一些行政區邊界不連續,行政區邊界數據檢索接口 List<LatLng> getPolylines() 變更爲 List<List<LatLng>> getPolylines()接口,適配邊界多個形狀區域的情況。

v4.0.0版本資源包:下載

v4.1.1版本資源包:下載


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章