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.bkjia.com/

用户名与密码都是www.bkjia.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.      

相关内容