參考:http://blog.csdn.net/binyao02123202/article/details/7583244
http://developer.baidu.com/map/sdk-android.htm
第一步:擷取一個針對自己項目的key值。http://dev.baidu.com/wiki/static/imap/key/
我的key為:01BE364003B456360DDC578D178898F59EC8A20B
第二步:首先將API包括的兩個檔案baidumapapi.jar和libBMapApiEngine.so拷貝到工程根目錄及libs\armeabi目錄下,並在工程屬性->Java
Build Path->Libraries中選擇“Add JARs”,選定baidumapapi.jar,確定後返回,這樣您就可以在您的程式中使用API了。
例子1:顯示百度地圖
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <com.baidu.mapapi.MapView android:id="@+id/bmapView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" /></LinearLayout>
package com.baidu.mapapi.demo;import com.baidu.mapapi.BMapManager;import com.baidu.mapapi.MapActivity;import com.baidu.mapapi.MapView;import android.os.Bundle;import android.util.Log;public class MapViewDemo extends MapActivity {protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); setContentView(R.layout.mapviewdemo); BMapApiDemoApp app = (BMapApiDemoApp)this.getApplication();if (app.mBMapMan == null) {app.mBMapMan = new BMapManager(getApplication());app.mBMapMan.init(app.mStrKey, new BMapApiDemoApp.MyGeneralListener());}app.mBMapMan.start(); // 如果使用地圖SDK,請初始化地圖Activitylong iTime = System.nanoTime(); super.initMapActivity(app.mBMapMan); iTime = System.nanoTime() - iTime; Log.d("MapViewDemo", "the init time is " + iTime); MapView mapView = (MapView)findViewById(R.id.bmapView); mapView.setBuiltInZoomControls(true); //mapView.setDoubleClickZooming(false); //mapView.setTraffic(true);}@Overrideprotected void onPause() {BMapApiDemoApp app = (BMapApiDemoApp)this.getApplication();if(app.mBMapMan != null )app.mBMapMan.stop();super.onPause();}@Overrideprotected void onResume() {BMapApiDemoApp app = (BMapApiDemoApp)this.getApplication();app.mBMapMan.start();super.onResume();}@Overrideprotected boolean isRouteDisplayed() {// TODO Auto-generated method stubreturn false;}// @Override// protected void onDestroy() {//// BMapApiDemoApp app = (BMapApiDemoApp)this.getApplication();//if (app.mBMapMan != null) {//app.mBMapMan.destroy();//app.mBMapMan = null;//}//super.onDestroy();// }}
例2:尋找大眾運輸路線
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="在" /> <EditText android:id="@+id/city" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="北京" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="市內找" /> <EditText android:id="@+id/searchkey" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="717" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/str_id_bus" /> <Button android:id="@+id/search" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/str_id_start" /> </LinearLayout> <com.baidu.mapapi.MapView android:id="@+id/bmapView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" /></LinearLayout>
package com.baidu.mapapi.demo;import android.os.Bundle;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;import com.baidu.mapapi.BMapManager;import com.baidu.mapapi.MKAddrInfo;import com.baidu.mapapi.MKBusLineResult;import com.baidu.mapapi.MKDrivingRouteResult;import com.baidu.mapapi.MKPoiInfo;import com.baidu.mapapi.MKPoiResult;import com.baidu.mapapi.MKSearch;import com.baidu.mapapi.MKSearchListener;import com.baidu.mapapi.MKSuggestionResult;import com.baidu.mapapi.MKTransitRouteResult;import com.baidu.mapapi.MKWalkingRouteResult;import com.baidu.mapapi.MapActivity;import com.baidu.mapapi.MapView;import com.baidu.mapapi.RouteOverlay;import com.baidu.mapapi.demo.R;public class BusLineSearch extends MapActivity {Button mBtnSearch = null;// 搜尋按鈕MapView mMapView = null;// 地圖ViewMKSearch mSearch = null;// 搜尋模組,也可去掉地圖模組獨立使用String mCityName = null;protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); setContentView(R.layout.buslinesearch); BMapApiDemoApp app = (BMapApiDemoApp)this.getApplication();if (app.mBMapMan == null) {app.mBMapMan = new BMapManager(getApplication());app.mBMapMan.init(app.mStrKey, new BMapApiDemoApp.MyGeneralListener());}app.mBMapMan.start(); // 如果使用地圖SDK,請初始化地圖Activity super.initMapActivity(app.mBMapMan); mMapView = (MapView)findViewById(R.id.bmapView); mMapView.setBuiltInZoomControls(true); //設定在縮放動畫過程中也顯示overlay,預設為不繪製 mMapView.setDrawOverlayWhenZooming(true); // 初始化搜尋模組,註冊事件監聽 mSearch = new MKSearch(); mSearch.init(app.mBMapMan, new MKSearchListener(){public void onGetPoiResult(MKPoiResult res, int type, int error) {// 錯誤號碼可參考MKEvent中的定義if (error != 0 || res == null) {Toast.makeText(BusLineSearch.this, "抱歉,未找到結果", Toast.LENGTH_LONG).show();return; }// 找到大眾運輸路線poi node MKPoiInfo curPoi = null; int totalPoiNum = res.getNumPois();for( int idx = 0; idx < totalPoiNum; idx++ ) {Log.d("busline", "the busline is " + idx); curPoi = res.getPoi(idx); if ( 2 == curPoi.ePoiType ) { break; }}mSearch.busLineSearch(mCityName, curPoi.uid);}public void onGetDrivingRouteResult(MKDrivingRouteResult res,int error) {}public void onGetTransitRouteResult(MKTransitRouteResult res,int error) {}public void onGetWalkingRouteResult(MKWalkingRouteResult res,int error) {}public void onGetAddrResult(MKAddrInfo res, int error) {}public void onGetBusDetailResult(MKBusLineResult result, int iError) {if (iError != 0 || result == null) {Toast.makeText(BusLineSearch.this, "抱歉,未找到結果", Toast.LENGTH_LONG).show();return; }RouteOverlay routeOverlay = new RouteOverlay(BusLineSearch.this, mMapView); // 此處僅展示一個方案作為樣本 routeOverlay.setData(result.getBusRoute()); mMapView.getOverlays().clear(); mMapView.getOverlays().add(routeOverlay); mMapView.invalidate(); mMapView.getController().animateTo(result.getBusRoute().getStart());}@Overridepublic void onGetSuggestionResult(MKSuggestionResult res, int arg1) {// TODO Auto-generated method stub} }); // 設定搜尋按鈕的響應 mBtnSearch = (Button)findViewById(R.id.search); OnClickListener clickListener = new OnClickListener(){public void onClick(View v) {SearchButtonProcess(v);} }; mBtnSearch.setOnClickListener(clickListener); }void SearchButtonProcess(View v) {if (mBtnSearch.equals(v)) {EditText editCity = (EditText)findViewById(R.id.city);EditText editSearchKey = (EditText)findViewById(R.id.searchkey);mCityName = editCity.getText().toString(); mSearch.poiSearchInCity(mCityName, editSearchKey.getText().toString());}}@Overrideprotected void onPause() {BMapApiDemoApp app = (BMapApiDemoApp)this.getApplication();app.mBMapMan.stop();super.onPause();}@Overrideprotected void onResume() {BMapApiDemoApp app = (BMapApiDemoApp)this.getApplication();app.mBMapMan.start();super.onResume();}@Overrideprotected boolean isRouteDisplayed() {// TODO Auto-generated method stubreturn false;}}
為: http://download.csdn.net/detail/niejing654092427/5052395