首先在工程里新建libs文件夹,并API开发包里的baidumapapi.jar拷贝到libs根目录下,将libBMapApiEngine.so拷贝到libs\armeabi目录下。官网demo里已有这两个文件,如果要集成到自己的工程里,就需要自己添加。然后在工程属性->Java Build Path->Libraries中选择“Add External JARs”,选定baidumapapi.jar,确定后返回,这样您就可以在您的程序中使用API了。
在Manifest中添加使用权限
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>
在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>
让创建的地图Activity继承com.baidu.mapapi.MapActivity, 并import相关类
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.MKSuggestionResult;
30. import com.baidu.mapapi.MapActivity;
31. import com.baidu.mapapi.MapController;
32. import com.baidu.mapapi.MapView;
33. import com.baidu.mapapi.MyLocationOverlay;
34. import com.baidu.mapapi.Overlay;
35. import com.baidu.mapapi.OverlayItem;
36. import com.baidu.mapapi.PoiOverlay;
37. import com.baidu.mapapi.RouteOverlay;
38. import com.baidu.mapapi.TransitOverlay;
39.
40. public class MyMapActivity extends MapActivity {
41. @Override
42. public void onCreate(Bundle savedInstanceState) {
43. super.onCreate(savedInstanceState);
44. setContentView(R.layout.main);
45. }
46.
47. @Override
48. protected boolean isRouteDisplayed() {
49. return false;
50. }
51. }
在布局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>
初始化地图Activity/使用key
在地图Activity中定义变量: BMapManager mBMapMan = null; 在onCreate方法中增加以下代码,并将您申请的Key替换“我的Key”:
1. mBMapMan = new BMapManager(getApplication());
2. mBMapMan.init("我的Key", null);
3. super.initMapActivity(mBMapMan);
4.
5. MapView mMapView = (MapView) findViewById(R.id.bmapsView);
6. mMapView.setBuiltInZoomControls(true); //设置启用内置的缩放控件
7.
8. MapController mMapController = mMapView.getController(); // 得到mMapView的控制权,可以用它控制和驱动平移和缩放
9. GeoPoint point = new GeoPoint((int) (39.915 * 1E6),
10. (int) (116.404 * 1E6)); //用给定的经纬度构造一个GeoPoint,单位是微度 (度 * 1E6)
11. mMapController.setCenter(point); //设置地图中心点
12. mMapController.setZoom(12); //设置地图zoom级别
Override以下方法,管理API:
1. @Override
2. protected void onDestroy() {
3. if (mBMapMan != null) {
4. mBMapMan.destroy();
5. mBMapMan = null;
6. }
7. super.onDestroy();
8. }
9. @Override
10. protected void onPause() {
11. if (mBMapMan != null) {
12. mBMapMan.stop();
13. }
14. super.onPause();
15. }
16. @Override
17. protected void onResume() {
18. if (mBMapMan != null) {
19. mBMapMan.start();
20. }
21. super.onResume();
22. }
完成上述步骤后,运行程序,结果如下: