歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android開發教程:百度地圖初學

用戶在使用API之前需要獲取百度地圖移動版API Key,並且該KEY與您引用API的程序名稱有關,具體流程請參照:申請API KEY

百度地圖API支持Android 1.5及以上系統。

<1>API添加到Andoid工程中

必須顯得下載API開發包:點擊下載

解壓之後包括兩個文件baidumapapi.jar和libBMapApiEngine.so。在工程根目錄下創建ibs\armeabi目錄,並拷貝到其目錄下。

在工程屬性->Java Build Path->Libraries中選擇“Add JARs”,選定baidumapapi.jar,確定後返回,這樣您就可以在您的程序中使用API了。

<2>在Manifest中添加使用權限

源代碼下載:

免費下載地址在 http://linux.linuxidc.com/

用戶名與密碼都是www.linuxidc.com

具體下載目錄在 /2012年資料/3月/5/Android開發教程:百度地圖初學/

這不很多人會忘記的,以定要注意。

  1. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>  
  2. <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>  
  3. <uses-permission android:name="android.permission.INTERNET"></uses-permission>  
  4. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>  
  5. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>    
  6. <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>   
  7. <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>  
<3>在Manifest中添加Android版本支持
  1. <supports-screens android:largeScreens="true"  
  2.     android:normalScreens="true" android:smallScreens="true"  
  3.     android:resizeable="true" android:anyDensity="true"/>  
  4. <uses-sdk android:minSdkVersion="3"></uses-sdk>  
<4>讓創建的地圖Activity繼承com.baidu.mapapi.MapActivity, 並import相關類

代碼裡的import相關類有些可能用不著,這的取決你的功能。

你可以不用導入這些,用那個再import("alt+/"快捷鍵)

  1. import java.util.ArrayList;  
  2. import java.util.List;  
  3.    
  4. import android.content.Context;  
  5. import android.graphics.Canvas;  
  6. import android.graphics.Paint;  
  7. import android.graphics.Point;  
  8. import android.graphics.drawable.Drawable;  
  9. import android.location.Location;  
  10. import android.os.Bundle;  
  11. import android.util.Log;  
  12. import android.view.View;  
  13. import android.widget.Toast;  
  14.    
  15. import com.baidu.mapapi.BMapManager;  
  16. import com.baidu.mapapi.GeoPoint;  
  17. import com.baidu.mapapi.ItemizedOverlay;  
  18. import com.baidu.mapapi.LocationListener;  
  19. import com.baidu.mapapi.MKAddrInfo;  
  20. import com.baidu.mapapi.MKDrivingRouteResult;  
  21. import com.baidu.mapapi.MKGeneralListener;  
  22. import com.baidu.mapapi.MKLocationManager;  
  23. import com.baidu.mapapi.MKPlanNode;  
  24. import com.baidu.mapapi.MKPoiResult;  
  25. import com.baidu.mapapi.MKSearch;  
  26. import com.baidu.mapapi.MKSearchListener;  
  27. import com.baidu.mapapi.MKTransitRouteResult;  
  28. import com.baidu.mapapi.MKWalkingRouteResult;  
  29. import com.baidu.mapapi.MapActivity;  
  30. import com.baidu.mapapi.MapController;  
  31. import com.baidu.mapapi.MapView;  
  32. import com.baidu.mapapi.MyLocationOverlay;  
  33. import com.baidu.mapapi.Overlay;  
  34. import com.baidu.mapapi.OverlayItem;  
  35. import com.baidu.mapapi.PoiOverlay;  
  36. import com.baidu.mapapi.RouteOverlay;  
  37. import com.baidu.mapapi.TransitOverlay;  
  38.    
  39. public class MyMapActivity extends MapActivity {  
  40.     @Override  
  41.     public void onCreate(Bundle savedInstanceState) {  
  42.         super.onCreate(savedInstanceState);  
  43.         setContentView(R.layout.main);  
  44.     }  
  45.    
  46.     @Override  
  47.     protected boolean isRouteDisplayed() {  
  48.         return false;  
  49.     }  
  50. }  
<5>在布局xml中添加地圖控件
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical" android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent">  
  5.     <TextView android:layout_width="fill_parent"  
  6.         android:layout_height="wrap_content" android:text="@string/hello" />  
  7.     <com.baidu.mapapi.MapView android:id="@+id/bmapsView"  
  8.         android:layout_width="fill_parent" android:layout_height="fill_parent"  
  9.         android:clickable="true" />  
  10. </LinearLayout>  
<6>始化地圖Activity,在地圖Activity中定義變量: BMapManager mapManager = null; 在onCreate方法中增加以下代碼,並將您申請的Key替換“我的Key”:
  1. mapManager = new BMapManager(getApplication());  
  2.         mapManager.init(key, null);  
  3.         super.initMapActivity(mapManager);  
  4.            
  5.         MapView mapView = (MapView) findViewById(R.id.mapsView);  
  6.         mapView.setBuiltInZoomControls(true);  //設置啟用內置的縮放控件   
  7.            
  8.         MapController mapController = mapView.getController();  // 得到mMapView的控制權,可以用它控制和驅動平移和縮放   
  9.         GeoPoint point = new GeoPoint((int) (39.915 * 1E6),  
  10.                 (int) (116.404 * 1E6));  //用給定的經緯度構造一個GeoPoint,單位是微度 (度 * 1E6)   
  11.         mapController.setCenter(point);  //設置地圖中心點   
  12.         mapController.setZoom(12);    //設置地圖zoom級別  
Override以下方法,管理API:
  1. @Override  
  2.    protected void onDestroy() {  
  3.        if (mapManager != null) {  
  4.            mapManager.destroy();  
  5.            mapManager = null;  
  6.        }  
  7.        super.onDestroy();  
  8.    }  
  9.    @Override  
  10.    protected void onPause() {  
  11.        if (mapManager != null) {  
  12.            mapManager.stop();  
  13.        }  
  14.        super.onPause();  
  15.    }  
  16.    @Override  
  17.    protected void onResume() {  
  18.        if (mapManager != null) {  
  19.            mapManager.start();  
  20.        }  
  21.        super.onResume();  
  22.    }  
  23.      

Copyright © Linux教程網 All Rights Reserved