Android 百度地圖 SDK v3.0.0 (一)

來源:互聯網
上載者:User

標籤:

轉載請標明出處:http://blog.csdn.net/lmj623565791/article/details/37729091

最近公司要把百度地圖整合的項目中,於是我就研究了一天百度地圖的SDK,當前的版本:Android SDK v3.0.0 。 雖然百度地圖網上相關代碼比較多,大多可能都是比較舊的版本,且百度地圖API的改動感覺也比較大,所以再此跟大家分享一下一天的勞動成功。

下面簡單展示下,部落格中會介紹的功能:

1、功能介紹

a、首先肯定是匯入地圖,然後就是地圖模式的一些切換,普通,衛星,即時交通什麼的。

b、定位功能,定位當前位置。

c、動態添加覆蓋物,點擊覆蓋物,彈出層以及其他效果。

 

 

d、結合方向感應器,為地圖的定位功能添加方向,本人極其路癡,不分東南西北,所以此功能對我來說非常重要,手機不斷旋轉,我才能知道當前應該走哪條路,直接顯示的地圖對我來說沒用。

(我360度的旋轉手機,觀察的變化):

 

切換到別的模式也是很炫的:

e、提供離線地圖下載,可以極大的省去使用者的流量,也能保證在無網路情況對地圖的使用。

基本這上述的功能,第一篇,還是從零開始,先把百度地圖匯入app再說。

2、申請密鑰

a、申請密鑰,到百度API控制台的頁面:http://lbsyun.baidu.com/apiconsole/key

輸入要應用程式名稱,選擇應用類型,輸入安全嗎。

b、關於安全碼 ( 數位簽章;包名 ) 的擷取:

開啟IDE:

黑框框住的就是數位簽章,然後包名就是咱們應用的包名,直接用分號串連:例如:F5:10:39:D9:81:57:BD:2E:A0:CD:E3:EB:5E:C4:CC:E0:E0:0D:41:56;com.zhy.zhy_baidu_ditu_demo03

最後點擊完成,就能擷取密鑰了:

 

3、第一個baidu map應用

下載就不多說了,直接點擊官網的相關下載就行選擇就可,後面我也會貼上源碼。

配置:

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

 

註:liblocSDK3.so和locSDK_3.1.jar為百度定位SDK所使用資源,開發人員可根據實際需求自行添加。
android_dev1.png
第二步:在工程屬性->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 .

 

 

a、在application中添加開發密鑰

[html] view plain
  1. <application   
  2. <meta-data   
  3. android:name="com.baidu.lbsapi.API_KEY"   
  4. android:value="開發人員 key" />   
  5. </application>  



 

b、添加要求的權限

[html] view plain
  1. <uses-permission android:name="android.permission.GET_ACCOUNTS" />   
  2. <uses-permission android:name="android.permission.USE_CREDENTIALS" />   
  3. <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />   
  4. <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />   
  5. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />   
  6. <uses-permission android:name="android.permission.INTERNET" />   
  7. <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />   
  8. <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />   
  9. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />   
  10. <uses-permission android:name="android.permission.READ_PHONE_STATE" />   
  11. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />   
  12. <uses-permission android:name="android.permission.BROADCAST_STICKY" />   
  13. <uses-permission android:name="android.permission.WRITE_SETTINGS" />   
  14. <uses-permission android:name="android.permission.READ_PHONE_STATE" />  



 

c、布局檔案中添加地圖控制項

 

[html] view plain
  1. <com.baidu.mapapi.map.MapView  
  2. android:id="@+id/id_bmapView"  
  3. android:layout_width="fill_parent"  
  4. android:layout_height="fill_parent"  
  5. android:clickable="true" />  



 

d、在應用程式建立時初始化 SDK引用的Context 全域變數:

 

[java] view plain
  1. @Override  
  2. protected void onCreate(Bundle savedInstanceState)  
  3. {  
  4. super.onCreate(savedInstanceState);  
  5.   
  6. requestWindowFeature(Window.FEATURE_NO_TITLE);  
  7. // 在使用SDK各組件之前初始化context資訊,傳入ApplicationContext  
  8. // 注意該方法要再setContentView方法之前實現  
  9. SDKInitializer.initialize(getApplicationContext());  
  10. setContentView(R.layout.activity_main);  
  11. }  



 

好了,經過這四步就能顯示地圖了~~

e、不過地圖很耗電,所以有必要管理其聲明周期

 

[java] view plain
  1. package com.zhy.zhy_baidu_ditu_demo00;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.view.Window;  
  6.   
  7. import com.baidu.mapapi.SDKInitializer;  
  8. import com.baidu.mapapi.map.MapView;  
  9.   
  10. public class MainActivity extends Activity  
  11. {  
  12.     private MapView mMapView = null;  
  13.   
  14.     @Override  
  15.     protected void onCreate(Bundle savedInstanceState)  
  16.     {  
  17.         super.onCreate(savedInstanceState);  
  18.   
  19.         requestWindowFeature(Window.FEATURE_NO_TITLE);  
  20.         // 在使用SDK各組件之前初始化context資訊,傳入ApplicationContext  
  21.         // 注意該方法要再setContentView方法之前實現  
  22.         SDKInitializer.initialize(getApplicationContext());  
  23.         setContentView(R.layout.activity_main);  
  24.         // 擷取地圖控制項引用  
  25.         mMapView = (MapView) findViewById(R.id.id_bmapView);  
  26.     }  
  27.   
  28.     @Override  
  29.     protected void onDestroy()  
  30.     {  
  31.         super.onDestroy();  
  32.         // 在activity執行onDestroy時執行mMapView.onDestroy(),實現地圖生命週期管理  
  33.         mMapView.onDestroy();  
  34.         mMapView = null;  
  35.     }  
  36.   
  37.     @Override  
  38.     protected void onResume()  
  39.     {  
  40.         super.onResume();  
  41.         // 在activity執行onResume時執行mMapView. onResume (),實現地圖生命週期管理  
  42.         mMapView.onResume();  
  43.     }  
  44.   
  45.     @Override  
  46.     protected void onPause()  
  47.     {  
  48.         super.onPause();  
  49.         // 在activity執行onPause時執行mMapView. onPause (),實現地圖生命週期管理  
  50.         mMapView.onPause();  
  51.     }  
  52.   
  53. }  



 

好了,完成。其實百度開發指南上對了helloworld這篇也極其清楚~~~~

 

 

源碼點擊下載

 

百度地圖相關部落格視頻版本已經上線:Android中百度地圖的使用期待您的支援。

 

 

 

博主部分視頻已經上線,如果你不喜歡枯燥的文本,請猛戳(初錄,期待您的支援):

1、Android 自訂控制項實戰 電商活動中的刮刮卡

2、Android自訂控制項實戰  打造Android流式布局和熱門標籤

3、Android智能機器人“小慕”的實現

4、高仿QQ5.0側滑

5、高仿5.2.1主介面及訊息提醒

Android 百度地圖 SDK v3.0.0 (一)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.