百度地图 公交线路查询

来源:互联网 发布:人工智能利弊的议论文 编辑:程序博客网 时间:2024/04/28 21:01

公交线路搜索的方法为transitSearch(String city, MKPlanNode start, MKPlanNode end),city:为待查公交线路所在城市,start和end分别是起点和终点;获取结果的方法改为重写onGetTransitRouteResult方法(具体使用方法与驾车及步行路线搜索类似,此处不再给出核心代码)。

此外,公交方面还可根据公交线路的id对公交的详细信息进行搜索,具体步骤如下:

第一步:利用兴趣点搜索的方法获取待查公交线路的信息;

源码复制打印关于
  1. mMKSearch.poiSearchInCity("北京""717");  

第二步:获取公交线路的id,并以此作为公交详细信息搜索的关键字;

源码复制打印关于
  1. @Override  
  2. public void onGetPoiResult(MKPoiResult res, int type, int error) {  
  3.        // 错误号可参考MKEvent中的定义  
  4.        if (error != 0 || res == null) {  
  5.                Toast.makeText(MyMapActivity.this"抱歉,未找到结果", Toast.LENGTH_LONG).show();  
  6.                return;  
  7.        }  
  8.        // 找到公交路线poi node   
  9.        MKPoiInfocurPoi = null;  
  10.        int totalPoiNum  = res.getNumPois();  
  11.        for(intidx = 0; idx<totalPoiNum; idx++ ) {  
  12.                curPoi = res.getPoi(idx);   
  13.                if ( 2 == curPoi.ePoiType ) {  
  14.                        break;   
  15.                }  
  16.        }  
  17.        mMKSearch.busLineSearch(mCityName, curPoi.uid);  

第三步:获取公交线路的详细信息,并展示;

源码复制打印关于
  1. public void onGetBusDetailResult(MKBusLineResult result, int iError) {  
  2.        if (iError != 0 || result == null) {  
  3.                Toast.makeText(MyMapActivity.this"抱歉,未找到结果", Toast.LENGTH_LONG).show();  
  4.                return;  
  5.        }  
  6.        RouteOverlay routeOverlay = new RouteOverlay(MyMapActivity.this, mMapView);    // 此处仅展示一个方案作为示例  
  7.        routeOverlay.setData(result.getBusRoute());  
  8.        mMapView.getOverlays().clear();  
  9.        mMapView.getOverlays().add(routeOverlay);  
  10.        mMapView.refresh();  
  11.        mMapView.getController().animateTo(result.getBusRoute().getStart());  

公交详细信息展示结果如下图所示:

android_dev8.jpg

  大家写代码布局可以直接先不要edittext,直接地图,然后在程序里面直接添加 mkSearch.poiSearchInCity("北京", "717");先测试鲜果,然后再增加功能。                                    

0 0
原创粉丝点击