歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android開發教程:百度地圖初學

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

日期:2017/3/1 10:27:23   编辑:Linux編程

用戶在使用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. import android.content.Context;
  4. import android.graphics.Canvas;
  5. import android.graphics.Paint;
  6. import android.graphics.Point;
  7. import android.graphics.drawable.Drawable;
  8. import android.location.Location;
  9. import android.os.Bundle;
  10. import android.util.Log;
  11. import android.view.View;
  12. import android.widget.Toast;
  13. import com.baidu.mapapi.BMapManager;
  14. import com.baidu.mapapi.GeoPoint;
  15. import com.baidu.mapapi.ItemizedOverlay;
  16. import com.baidu.mapapi.LocationListener;
  17. import com.baidu.mapapi.MKAddrInfo;
  18. import com.baidu.mapapi.MKDrivingRouteResult;
  19. import com.baidu.mapapi.MKGeneralListener;
  20. import com.baidu.mapapi.MKLocationManager;
  21. import com.baidu.mapapi.MKPlanNode;
  22. import com.baidu.mapapi.MKPoiResult;
  23. import com.baidu.mapapi.MKSearch;
  24. import com.baidu.mapapi.MKSearchListener;
  25. import com.baidu.mapapi.MKTransitRouteResult;
  26. import com.baidu.mapapi.MKWalkingRouteResult;
  27. import com.baidu.mapapi.MapActivity;
  28. import com.baidu.mapapi.MapController;
  29. import com.baidu.mapapi.MapView;
  30. import com.baidu.mapapi.MyLocationOverlay;
  31. import com.baidu.mapapi.Overlay;
  32. import com.baidu.mapapi.OverlayItem;
  33. import com.baidu.mapapi.PoiOverlay;
  34. import com.baidu.mapapi.RouteOverlay;
  35. import com.baidu.mapapi.TransitOverlay;
  36. public class MyMapActivity extends MapActivity {
  37. @Override
  38. public void onCreate(Bundle savedInstanceState) {
  39. super.onCreate(savedInstanceState);
  40. setContentView(R.layout.main);
  41. }
  42. @Override
  43. protected boolean isRouteDisplayed() {
  44. return false;
  45. }
  46. }
<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. MapView mapView = (MapView) findViewById(R.id.mapsView);
  5. mapView.setBuiltInZoomControls(true); //設置啟用內置的縮放控件
  6. MapController mapController = mapView.getController(); // 得到mMapView的控制權,可以用它控制和驅動平移和縮放
  7. GeoPoint point = new GeoPoint((int) (39.915 * 1E6),
  8. (int) (116.404 * 1E6)); //用給定的經緯度構造一個GeoPoint,單位是微度 (度 * 1E6)
  9. mapController.setCenter(point); //設置地圖中心點
  10. 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. }

Copyright © Linux教程網 All Rights Reserved