百度地图之驾车路线的搜索

来源:互联网 发布:kerorn淘宝店铺 编辑:程序博客网 时间:2024/05/02 18:22
package com.njupt.bmap_helloworld;import com.baidu.mapapi.BMapManager;import com.baidu.mapapi.GeoPoint;import com.baidu.mapapi.MKAddrInfo;import com.baidu.mapapi.MKBusLineResult;import com.baidu.mapapi.MKDrivingRouteResult;import com.baidu.mapapi.MKGeneralListener;import com.baidu.mapapi.MKPlanNode;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.MapController;import com.baidu.mapapi.MapView;import com.baidu.mapapi.PoiOverlay;import com.baidu.mapapi.RouteOverlay;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.widget.Toast;public class MainActivity extends MapActivity {private MapView mapView;//百度地图的相关控件private BMapManager bMapManager;//加载地图的引擎private String keyString = "04763B1D8C925195965E838C6E59DB767DAE4BA7";//百度地图的keyprivate MapController mapController;//在百度地图上添加一些控件,比如放大或缩小控件private MKSearch mkSearch;private MKPlanNode start;private MKPlanNode end;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);mapView = (MapView) findViewById(R.id.bmapView);bMapManager = new BMapManager(MainActivity.this);//必须要加载keybMapManager.init(keyString, new MKGeneralListener() {@Overridepublic void onGetPermissionState(int arg0) {if(arg0 == 300){Toast.makeText(MainActivity.this, "输入的key有误,请核实...", 1).show();}}@Overridepublic void onGetNetworkState(int arg0) {// TODO Auto-generated method stub}});initMapActivity(bMapManager);mapView.setBuiltInZoomControls(true);//表示可以设置缩放功能mapController = mapView.getController();mapController.setZoom(12);//设置缩放级别mkSearch = new MKSearch();mkSearch.init(bMapManager, new MySearchListener());start = new MKPlanNode();start.pt = new GeoPoint((int)(39.915*1E6), (int)(116.404*1E6));end = new MKPlanNode();end.pt = new GeoPoint(40057031, 116307852);mkSearch.setDrivingPolicy(MKSearch.EBUS_TIME_FIRST);mkSearch.drivingSearch(null, start, null, end);}public class MySearchListener implements MKSearchListener{@Overridepublic void onGetAddrResult(MKAddrInfo arg0, int arg1) {// TODO Auto-generated method stub}@Overridepublic void onGetBusDetailResult(MKBusLineResult arg0, int arg1) {// TODO Auto-generated method stub}@Overridepublic void onGetDrivingRouteResult(MKDrivingRouteResult arg0, int arg1) {if(arg0 == null){return ;}RouteOverlay routeOverlay = new RouteOverlay(MainActivity.this, mapView);routeOverlay.setData(arg0.getPlan(0).getRoute(0));//选择第一条搜索方案中的第一条路线..mapView.getOverlays().add(routeOverlay);mapView.invalidate();}@Overridepublic void onGetPoiResult(MKPoiResult result, int type, int iError) {if(result == null){return ;}PoiOverlay poiOverlay = new PoiOverlay(MainActivity.this, mapView);poiOverlay.setData(result.getAllPoi());//找到所有符合条件的点mapView.getOverlays().add(poiOverlay);mapView.invalidate();}@Overridepublic void onGetSuggestionResult(MKSuggestionResult arg0, int arg1) {// TODO Auto-generated method stub}@Overridepublic void onGetTransitRouteResult(MKTransitRouteResult arg0, int arg1) {// TODO Auto-generated method stub}@Overridepublic void onGetWalkingRouteResult(MKWalkingRouteResult arg0, int arg1) {// TODO Auto-generated method stub}}@Overrideprotected void onDestroy() {super.onDestroy();if(bMapManager != null){bMapManager.destroy();bMapManager = null;}}@Overrideprotected void onResume() {super.onResume();if(bMapManager != null){bMapManager.start();}}@Overrideprotected void onPause() {super.onPause();if(bMapManager != null){bMapManager.stop();}}@Overrideprotected boolean isRouteDisplayed() {// TODO Auto-generated method stubreturn false;}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}