百度api开发小试牛刀

Hello World

如何把API 添加到我的Android工程中?

首先在工程里新建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. }

完成上述步骤后,运行程序,结果如下:

你可能感兴趣的:(百度api开发小试牛刀)