国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

android百度地圖之公交線路詳情搜索

2019-12-12 04:56:25
字體:
供稿:網(wǎng)友

本篇文章可以實(shí)現(xiàn)百度公交線路搜索,可以選擇多條線路,具體實(shí)現(xiàn)代碼如下:

一、公交線路詳情檢索

獲取公交線路的詳情主要分來兩步,1.獲取公交線路的Uid,2.通過Uid獲取公交線路詳情。

1.獲取公交線路的Uid:

/*     * 獲得公交線路圖的Uid,并且根據(jù)系Uid發(fā)起公交線路詳情的檢索     *      * @see     * com.baidu.mapapi.MKSearchListener#onGetPoiResult(com.baidu.mapapi     * .MKPoiResult, int, int)     */    @Override    public void onGetPoiResult(MKPoiResult arg0, int arg1, int arg2) {      // TODO Auto-generated method stub      if (arg0 == null || arg2 != 0) {        Toast.makeText(MainActivity.this, "未找到結(jié)果", 1);        return;      }      // 定義一個公交線路描述類      MKPoiInfo mkPoiInfo = null;      // 獲得本次就愛你所的公交線路的總站點(diǎn)      int totalPoiNum = arg0.getNumPois();      for (int i = 0; i < totalPoiNum; i++) {        mkPoiInfo = arg0.getPoi(i);        if (mkPoiInfo.ePoiType == 2) {          break;        }      }      mkSearch.busLineSearch("開封", mkPoiInfo.uid);    }

2.獲取公交線路詳情:

/*     * 得到公交線路圖的詳情     *      * @see     * com.baidu.mapapi.MKSearchListener#onGetBusDetailResult(com.baidu.     * mapapi.MKBusLineResult, int)     */    @Override    public void onGetBusDetailResult(MKBusLineResult arg0, int arg1) {      // TODO Auto-generated method stub      if (arg0 == null || arg1 != 0) {        Toast.makeText(MainActivity.this, "未找到結(jié)果", 1);        return;      }      RouteOverlay routeOverlay = new RouteOverlay(MainActivity.this,          mapView);      routeOverlay.setData(arg0.getBusRoute());// 獲得公交線路      mapView.getOverlays().clear();// 清楚公交站點(diǎn)的標(biāo)識      mapView.getOverlays().add(routeOverlay);      mapView.invalidate();      // 采用動畫形式描述公交站點(diǎn)      mapView.getController().animateTo(arg0.getBusRoute().getStart());    }

查詢時,只需提供城市名和線路

mkSearch.poiSearchInCity("開封", "3");

完整代碼:

package com.arlen.android.baidumap08;import android.os.Bundle;import android.view.Menu;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.MKGeneralListener;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;public class MainActivity extends MapActivity {  private BMapManager bMapManager;  private MapView mapView;  private String key = "43D220AAB0DEC976D2EABC83CFC9EEE52BCCCA7A";  private MKSearch mkSearch;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    bMapManager = new BMapManager(MainActivity.this);    bMapManager.init(key, new MKGeneralListener() {      @Override      public void onGetPermissionState(int arg0) {        // TODO Auto-generated method stub      }      @Override      public void onGetNetworkState(int arg0) {        // TODO Auto-generated method stub      }    });    initMapActivity(bMapManager);    mapView = (MapView) findViewById(R.id.bmapView);    mkSearch = new MKSearch();    mkSearch.init(bMapManager, new MySearchListener());    mkSearch.poiSearchInCity("開封", "3");  }  private class MySearchListener implements MKSearchListener {    @Override    public void onGetAddrResult(MKAddrInfo arg0, int arg1) {      // TODO Auto-generated method stub    }    /*     * 得到公交線路圖的詳情     *      * @see     * com.baidu.mapapi.MKSearchListener#onGetBusDetailResult(com.baidu.     * mapapi.MKBusLineResult, int)     */    @Override    public void onGetBusDetailResult(MKBusLineResult arg0, int arg1) {      // TODO Auto-generated method stub      if (arg0 == null || arg1 != 0) {        Toast.makeText(MainActivity.this, "未找到結(jié)果", 1);        return;      }      RouteOverlay routeOverlay = new RouteOverlay(MainActivity.this,          mapView);      routeOverlay.setData(arg0.getBusRoute());// 獲得公交線路      mapView.getOverlays().clear();// 清楚公交站點(diǎn)的標(biāo)識      mapView.getOverlays().add(routeOverlay);      mapView.invalidate();      // 采用動畫形式描述公交站點(diǎn)      mapView.getController().animateTo(arg0.getBusRoute().getStart());    }    @Override    public void onGetDrivingRouteResult(MKDrivingRouteResult arg0, int arg1) {      // TODO Auto-generated method stub    }    @Override    public void onGetPoiDetailSearchResult(int arg0, int arg1) {      // TODO Auto-generated method stub    }    /*     * 獲得公交線路圖的Uid,并且根據(jù)系Uid發(fā)起公交線路詳情的檢索     *      * @see     * com.baidu.mapapi.MKSearchListener#onGetPoiResult(com.baidu.mapapi     * .MKPoiResult, int, int)     */    @Override    public void onGetPoiResult(MKPoiResult arg0, int arg1, int arg2) {      // TODO Auto-generated method stub      if (arg0 == null || arg2 != 0) {        Toast.makeText(MainActivity.this, "未找到結(jié)果", 1);        return;      }      // 定義一個公交線路描述類      MKPoiInfo mkPoiInfo = null;      // 獲得本次就愛你所的公交線路的總站點(diǎn)      int totalPoiNum = arg0.getNumPois();      for (int i = 0; i < totalPoiNum; i++) {        mkPoiInfo = arg0.getPoi(i);        if (mkPoiInfo.ePoiType == 2) {          break;        }      }      mkSearch.busLineSearch("開封", mkPoiInfo.uid);    }    @Override    public void onGetRGCShareUrlResult(String arg0, int arg1) {      // TODO Auto-generated method stub    }    @Override    public void onGetSuggestionResult(MKSuggestionResult arg0, int arg1) {      // TODO Auto-generated method stub    }    @Override    public void onGetTransitRouteResult(MKTransitRouteResult arg0, int arg1) {      // TODO Auto-generated method stub    }    @Override    public void onGetWalkingRouteResult(MKWalkingRouteResult arg0, int arg1) {      // TODO Auto-generated method stub    }  }  @Override  protected void onDestroy() {    // TODO Auto-generated method stub    super.onDestroy();    if (bMapManager != null) {      bMapManager.destroy();      bMapManager = null;    }  }  @Override  protected void onResume() {    // TODO Auto-generated method stub    super.onResume();    if (bMapManager != null) {      bMapManager.start();    }  }  @Override  protected void onPause() {    // TODO Auto-generated method stub    super.onPause();    if (bMapManager != null) {      bMapManager.stop();    }  }  @Override  public 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;  }  @Override  protected boolean isRouteDisplayed() {    // TODO Auto-generated method stub    return false;  }}

二、多條線路顯示

在同一個地圖上顯示多條導(dǎo)航線路,也只需要分兩步完成,

1.定義起始點(diǎn)個終點(diǎn)

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);

2.將所有的線路詳情循環(huán)顯示在地圖上

@Override    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);    }

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 宜阳县| 尼勒克县| 岐山县| 汾西县| 瓦房店市| 隆回县| 华安县| 张家港市| 赫章县| 通辽市| 吉安市| 石嘴山市| 沂源县| 固镇县| 旬阳县| 平安县| 连江县| 太康县| 桂阳县| 陵川县| 平定县| 青河县| 竹溪县| 鸡泽县| 内丘县| 绥德县| 普兰店市| 开阳县| 赣榆县| 通化市| 道真| 洛浦县| 岗巴县| 墨竹工卡县| 海门市| 阿克苏市| 桦南县| 犍为县| 辽中县| 牡丹江市| 湖北省|