百度地圖之九如何在一個地圖上顯示多條導航路線
阿新 • • 發佈:2018-11-07
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow
也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!
如何在一個地圖上顯示多條導航路線
實戰案例:檢索北京天安門駕車到百度大廈有多少條路線圖
packagecom.android.android_baidu_mystranit;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.MapView;import com.baidu.mapapi.TransitOverlay;import android.os.Bundle;import android.widget.Toast;public class MainActivity extends MapActivity { // 新增百度地圖的相關控制元件 private MapView mapView; // 載入地圖的引擎 private BMapManager bMapManager; // 百度地圖的key private String KeyString = "8C426377B3526B6BF3672C9BA3BB544D1E8289CD"; // 用於位置檢索、周邊檢索、範圍檢索、公交檢索、駕乘檢索、步行檢索等 private MKSearch mkSearch; //定義一個起始點,終點 private MKPlanNode start; private MKPlanNode end; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mapView = (MapView) this.findViewById(R.id.bmapView); bMapManager = new BMapManager(MainActivity.this); // 必須要載入key bMapManager.init(KeyString, new MKGeneralListener() { public void onGetPermissionState(int arg0) { } public void onGetNetworkState(int arg0) { if (arg0 == 300) { Toast.makeText(MainActivity.this, "輸入的key有錯,請核實!!", 1).show(); } } }); this.initMapActivity(bMapManager); //例項化地圖的查詢類 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.transitSearch("北京", start, end); } public class MySearchListener implements MKSearchListener { public void onGetAddrResult(MKAddrInfo arg0, int arg1) { // TODO Auto-generated method stub } public void onGetBusDetailResult(MKBusLineResult arg0, int arg1) { // TODO Auto-generated method stub } public void onGetDrivingRouteResult(MKDrivingRouteResult arg0, int arg1) { // TODO Auto-generated method stub } public void onGetPoiResult(MKPoiResult result, int type, int iError) { // TODO Auto-generated method stub } public void onGetRGCShareUrlResult(String arg0, int arg1) { // TODO Auto-generated method stub } public void onGetSuggestionResult(MKSuggestionResult arg0, int arg1) { // TODO Auto-generated method stub } public void onGetTransitRouteResult(MKTransitRouteResult arg0, int arg1) { // TODO Auto-generated method stub if(arg0==null){ return; } int planNum = arg0.getNumPlan();//獲得所有的駕車路線圖 for(int i=0;i<planNum;i++){ TransitOverlay overlay = new TransitOverlay(MainActivity.this, mapView); overlay.setData(arg0.getPlan(i)); mapView.getOverlays().add(overlay); } mapView.invalidate();//重新整理一下地圖 mapView.getController().animateTo(arg0.getStart().pt); } public void onGetWalkingRouteResult(MKWalkingRouteResult arg0, int arg1) { // TODO Auto-generated method stub } } @Override protected void onDestroy() { super.onDestroy(); if (bMapManager != null) { bMapManager.destroy(); bMapManager = null; } } @Override protected void onResume() { super.onResume(); if (bMapManager != null) { bMapManager.start(); } } @Override protected void onPause() { super.onPause(); if (bMapManager != null) { bMapManager.stop(); } } @Override protected boolean isRouteDisplayed() { return false; }}
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>