百度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了。 java

在個人程序中顯示地圖

在Manifest中添加使用權限 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>

Manifest中添加Android版本支持 api

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相關類 ide

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 ui

在地圖Activity中定義變量: BMapManager mBMapMan = null; onCreate方法中增長如下代碼,並將您申請的Key替換個人Key」spa

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: code

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. }

完成上述步驟後,運行程序,結果以下: orm

相關文章
相關標籤/搜索