01.(最新版)百度地圖§環境配置

轉載請標明:http://blog.csdn.net/u012637501/article/details/45588377

一、Eclipse工程環境配置

1.下載SDK與申請Key

    參見http://developer.baidu.com/map/index.php?title=androidsdk/guide/key。需要注意的是,在執行keytool命令出現命令不存在異常。keytool工具在JDK的bin文件夾下面,可以將bin目錄的絕對路徑添加到PATH環境變量中即可。

百度地圖開發者:http://developer.baidu.com/map/

2.添加jar包、.so文件到工程

    在工程裏新建libs文件夾,將開發包裏的BaiduLBS_Android.jar(基礎地圖&定位)拷貝到libs根目錄下,將libBaiduMapSDK_v3_4_0_7.so拷貝到libs\armeabi目錄下(官網demo裏已有這兩個文件,如果要集成到自己的工程裏,就需要自己添加),拷貝完成後的工程目錄如下圖所示;


3.勾選" Android Private Libraries"

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

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

(2) Project -> clean

4.

在AndroidManifest.xml中添加開發密鑰、所需權限等信息

    由於要調用百度地圖的相關數據,因此需要添加相應的權限,我們可以通過查看下載的百度地圖的示例文件,從它的AndroidManifest.xml中進行拷貝即可,或者運行時根據提示信息一個個進行添加。
(1)在application中添加開發密鑰與對屏幕的支持
  1.    <!-- 添加對屏幕的支持 -->
  2.  <supports-screens
  3.          android:largeScreens="true"
  4.          android:normalScreens="true" android:smallScreens="true"
  5.          android:resizeable="true" android:anyDensity="true"/>
  6. <application>     
  7.     <meta-data    
  8.         android:name="com.baidu.lbsapi.API_KEY"    
  9.         android:value="開發者申請的 key" />           
  10. </application> 
(2)添加所需權限
  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" /> 

二、百度地圖SDK的核心API介紹
1.SDKInitializer類 
(1)作用:初始化 SDK context 全局變量,指定 sdcard 路徑
(2)靜態成員變量
static SDK_BROADCAST_ACTION_STRING_NETWORK_ERROR :網絡錯誤廣播 action string 
static SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_ERROR :|key 驗證失敗廣播 action string 
static SDK_BROADTCAST_INTENT_EXTRA_INFO_KEY_ERROR_CODE :key 驗證失敗廣播 intent 中附加信息錯誤碼鍵
(3)靜態成員方法
static void initialize(Context context)
初始化全局 context。
static void initialize(java.lang.String sdcardPath, Context context)
初始化全局 context,指定 sdcard 路徑,若採用默認路徑,請使用initialize(Context context) 重載函數
2.MapView類
(1)作用
    一個顯示地圖的視圖(View),它負責從服務端獲取地圖數據。它將會捕捉屏幕觸控手勢事件, 使用這個類必須按照它的生命週期進行操控,你必須參照以下方法onCreate(Bundle)、 onResume()、onPause()、onDestroy()等聲明周期函數。在使用地圖組件之前請確保已經調用了 SDKInitializer.initialize(Context) 函數以提供全局 Context 信息
(2)構造方法
    MapView(Context context)
    根據給定的上下文參數構造一個MapView 的新對象
(3)常用方法
void addView(View child, LayoutParams params) :向MapView中添加一個子View。 
BaiduMap getMap() :獲取地圖控制器BaiduMap對象 
void onDestroy() :當Activity銷燬時調用地圖的銷燬 
void onPause() :當Activity暫停的時候調用地圖暫停 
void onResume() :當Activity喚醒是調用地圖喚醒 
void removeView(View view) :|從MapView中移除一個子View 
void setScaleControlPosition(Point p): 設置比例尺控件的位置,在 onMapLoadFinish 後生效 
void setZoomControlsPosition(Point p) :設置縮放控件的位置,在 onMapLoadFinish 後生效 
void showScaleControl(boolean show) :設置是否顯示比例尺控件 
void showZoomControls(boolean show): 設置是否顯示縮放控件
參考文檔:http://wiki.lbsyun.baidu.com/cms/androidsdk/doc/v3_4_0/
三、百度地圖實例
1.在佈局xml文件中添加地圖控件
  1. <com.baidu.mapapi.map.MapView     
  2.     android:id="@+id/bmapView"  
  3.     android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent"  
  5.     android:clickable="true" />  
2.在應用程序創建時初始化 SDK引用的Context 全局變量
    在SDK各功能組件使用之前都需要調用SDKInitializer.initialize(getApplicationContext());該方法要再setContentView方法之前實現。 
3.創建地圖Activity,啓動地圖並管理地圖生命週期 
  1. package base.baidu.oncampus;  
  2. import android.app.Activity;   
  3. import android.os.Bundle;  
  4. import com.baidu.mapapi.SDKInitializer;  
  5. import com.baidu.mapapi.map.MapView;  
  6. public class MainActivity extends Activity {  
  7.     MapView mapView = null;  
  8.  protected void onCreate(Bundle savedInstanceState) {  
  9.         super.onCreate(savedInstanceState);  
  10.         SDKInitializer.initialize(getApplicationContext()); //在使用SDK各組件之前初始化context信息,傳入AplicationContext  
  11.         setContentView(R.layout.main);  
  12.         mapView = (MapView)findViewById(R.id.bmapView);  //獲取地圖控件引用  
  13.  }  
  14.  @Override  
  15.  protected void onDestroy() {  
  16.   mapView.onDestroy();   //關閉百度地圖  
  17.   super.onDestroy();  
  18.  }  
  19.  @Override  
  20.  protected void onPause() {  
  21.   mapView.onPause();     //暫停使用百度地圖  
  22.   super.onPause();  
  23.  }  
  24.  @Override  
  25.  protected void onResume() {  
  26.   mapView.onResume();    //恢復使用百度地圖  
  27.   super.onResume();  
  28.  }     
  29.  
運行結果:

參考資料:

發佈了142 篇原創文章 · 獲贊 19 · 訪問量 27萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章