公交线路搜索的方法为transitSearch(String city, MKPlanNode start, MKPlanNode end),city:为待查公交线路所在城市,start和end分别是起点和终点;获取结果的方法改为重写on
此外,公交方面还可根据公交线路的id对公交的详细信息进行搜索,具体步骤如下:
第一步:利用兴趣点搜索的方法获取待查公交线路的信息;
第二步:获取公交线路的id,并以此作为公交详细信息搜索的关键字;
- @Override
- public void on
GetPoiResult(MKPoiResult res, int type, int error) { - // 错误号可参考MKEvent中的定义
- if (error != 0 || res == null) {
- Toast.makeText(MyMapActivity.this, "抱歉,未找到结果", Toast.LENGTH_LONG).show();
- return;
- }
- // 找到公交路线poi node
- MKPoiInfocurPoi = null;
- int totalPoiNum = res.getNumPois();
- for(intidx = 0; idx<totalPoiNum; idx++ ) {
- curPoi = res.getPoi(idx);
- if ( 2 == curPoi.ePoiType ) {
- break;
- }
- }
- mMKSearch.busLineSearch(mCityName, curPoi.uid);
第三步:获取公交线路的详细信息,并展示;
- public void on
GetBusDetailResult(MKBusLineResult result, int iError) { - if (iError != 0 || result == null) {
- Toast.makeText(MyMapActivity.this, "抱歉,未找到结果", Toast.LENGTH_LONG).show();
- return;
- }
- RouteOverlay routeOverlay = new RouteOverlay(MyMapActivity.this, mMapView); // 此处仅展示一个方案作为示例
- routeOverlay.setData(result.getBusRoute());
- mMapView.getOverlays().clear();
- mMapView.getOverlays().add(routeOverlay);
- mMapView.refresh();
- mMapView.getController().animateTo(result.getBusRoute().getStart());
公交详细信息展示结果如下图所示:
大家写代码布局可以直接先不要edittext,直接地图,然后在程序里面直接添加 mkSearch.poiSearchInCity("北京", "717");先测试鲜果,然后再增加功能。