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

來源:互聯網
上載者:User

01.(最新版)百度地圖§環境配置,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. }  
運行結果:
參考資料:http://developer.baidu.com/map/index.php?title=androidsdk/guide/buildproject

聯繫我們

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