004 走上移動開發之安卓項目實戰(百度地圖:行走路線 公交轉乘路線 公交詳細路線)

來源:互聯網
上載者:User

這一篇文章是按照上一篇文章的邏輯來的,麻煩先看上一篇文章

《003 走上移動開發之安卓項目實戰(百度地圖:在地圖範圍內進行檢索與駕車路線搜尋)》

如果有什麼不懂的請看上一篇文章

《002 走上移動開發之安卓項目實戰(百度地圖:給地圖添加標註物)》

如果還有什麼看不懂的請您先從第一篇文章看起

《001 走上移動開發之安卓項目實戰(百度地圖:建立百度地圖開發環境)》

還請大家注意在文章進行轉載的時候麻煩註明出處

《http://blog.csdn.net/shuaiyinoo》謝謝


好了接下來今天給大家帶來的是三個技術點,

第一個技術點:行走路線 

按照我們以前的經驗要實現行走路線的搜尋第一步先在  onCreate  方法中加入如下搜尋代碼

        //6.0行走路線的搜尋        //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.walkingSearch(null, start, null, end);

然後定義一個  MySearchListener implements MKSearchListener 他

實現介面中的 onGetWalkingrouteResult 方法

@Overridepublic void onGetWalkingRouteResult(MKWalkingRouteResult result, int type) {//對調用的搜尋方法進行回調響應if(result == null){return;}RouteOverlay routeOverlay = new RouteOverlay(BaiDu_SuYiActivity.this, mapView);routeOverlay.setData(result.getPlan(0).getRoute(0));mapView.getOverlays().add(routeOverlay);//重新整理地圖mapView.invalidate();}


第二個技術點:公交轉乘路線 

同樣第一步,第二步的操作

        //7.0公交轉乘路線的搜尋        //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.transitSearch("北京", start, end); 

@Overridepublic void onGetTransitRouteResult(MKTransitRouteResult result, int type) {//公交轉乘的回調方法if(result == null){return;}TransitOverlay transitOverlay = new TransitOverlay(BaiDu_SuYiActivity.this, mapView);transitOverlay.setData(result.getPlan(0));mapView.getOverlays().add(transitOverlay);//重新整理地圖mapView.invalidate();}


第三個技術點:公交詳細路線

公交詳細路線的搜尋相對來說複雜一點點

第一步還是不變

    //8.0公交詳細路線的搜尋        mapController.setZoom(12);        //在地圖範圍內實現對物體的搜尋    mkSearch = new MKSearch();    mkSearch.init(bMapManager, new MySearchListener());    //設定回調的行走路線的方法    mkSearch.poiSearchInCity("北京", "300");

第二步首先實現介面裡面的這個方法

@Overridepublic void onGetPoiResult(MKPoiResult result, int type, int iError) {//對調用的搜尋方法進行回調響應//v8.00if(result == null||iError != 0){Toast.makeText(BaiDu_SuYiActivity.this, "對不起,找不到您的結果", 2).show();return;}//定義一個公交線路圖描述類MKPoiInfo mkPoiInfo = null;//獲得公交線路圖的總的網站int totalPoiNum = result.getNumPois();for(int i = 0;i<totalPoiNum;i++){mkPoiInfo = result.getPoi(i);if(mkPoiInfo.ePoiType == 2){break;//如果說返回的時候公交的線路圖就返回}}mkSearch.busLineSearch("北京", mkPoiInfo.uid);}

第三步然後再實現裡面的下面這個方法

@Overridepublic void onGetAddrResult(MKAddrInfo arg0, int arg1) {}@Overridepublic void onGetBusDetailResult(MKBusLineResult result, int type) {if(result == null||type != 0){Toast.makeText(BaiDu_SuYiActivity.this, "對不起,找不到您的結果", 2).show();return;}RouteOverlay routeOverlay = new RouteOverlay(BaiDu_SuYiActivity.this, mapView);routeOverlay.setData(result.getBusRoute());//清空所有的公交資訊mapView.getOverlays().clear();mapView.getOverlays().add(routeOverlay);mapView.invalidate();mapView.getController().animateTo(result.getBusRoute().getStart());}

這樣這三個知識點就算完成了。

相關關鍵詞:
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.