百度地图-获取一条公交上的所有站点 获取两站直接的线路
百度地图-获取一条公交上的所有站点 获取两站直接的线路
百度地图-获取一条公交上的所有站点 获取两站直接的线路:
- mSearch = new MKSearch();// 搜索服务类
- mSearch.init(mapManager, new MKSearchListener() {
- public void onGetPoiResult(MKPoiResult res, int type, int error) {
- // 错误号可参考MKEvent中的定义
- if (error != 0 || res == null) {
- Toast.makeText(BusRouteSysActivity.this, "抱歉,未找到结果",
- Toast.LENGTH_LONG).show();
- return;
- }
- String allStations = null;
- MKPoiInfo curPoi = null;
- int totalPoiNum = res.getNumPois();
- for (int idx = 0; idx < totalPoiNum; idx++) {
- Log.d("busline", "the busline is " + idx);
- curPoi = res.getPoi(idx);
- allStations += curPoi.name;//把所有站点放到allStation
- Log.i("allStation", allStations);
- if (2 == curPoi.ePoiType) {
- break;
- }
- }
- mSearch.busLineSearch(mCityName, curPoi.uid);
- }
- public void onGetTransitRouteResult(MKTransitRouteResult result,
- int iError) {
- if (result == null) {
- return;
- }
- Log.d("liuyq", "公交换乘方案数:" + result.getNumPlan());
- TransitOverlay routeOverlay = new TransitOverlay(
- BusRouteSysActivity.this, mapView);
- // 此处仅展示一个方案作为示例
- routeOverlay.setData(result.getPlan(0));
- mapView.getOverlays().clear();
- mapView.getOverlays().add(routeOverlay);
- mapView.invalidate();
- ResStringList = new ArrayList<String>();
- for (int i = 0; i < result.getNumPlan(); i++) {
- // 公交换乘方案详情类
- MKTransitRoutePlan routePlan = result.getPlan(i);
- // 再根据MKTransitRoutePlan类提供的方法去获取具体的换乘信息(省略)
- int lineNum = routePlan.getNumLines();
- Log.d("1111111", "方案" + (i + 1) + "包含的公交线路段数:" + lineNum);
- StringBuffer reStringBuffer = new StringBuffer("");// 结果句子
- String keyword = "";// 先 再 最后
- for (int j = 0; j < lineNum; j++) {
- MKLine mkLine = routePlan.getLine(j);
- MKPoiInfo onstopInfo = mkLine.getGetOnStop();
- MKPoiInfo offstopInfo = mkLine.getGetOffStop();
- String lineName = mkLine.getTitle();// 线路名
- String startPointName = onstopInfo.name;// 起点名
- String endPointName = offstopInfo.name;// 终点名
- String endword = "";
- if (j == 0) {
- keyword = "先";
- } else if (j == lineNum - 1) {
- keyword = ",最后";
- endword = "\n\n";
- } else {
- keyword = ",再";
- }
- reStringBuffer.append(keyword + "从 " + startPointName
- + " 上车,乘坐" + lineName + "路,在 " + endPointName
- + "下车" + endword);
- Log.d(TAG, "第" + (j + 1) + "段起点名称:" + startPointName);
- Log.d(TAG, "第" + (j + 1) + "段终点名称:" + endPointName);
- }
- // 如果不重复 就加入
- if (!ResStringList.contains(reStringBuffer.toString())) {
- ResStringList.add(reStringBuffer.toString());
- }
- }
- allResults = "";
- for (String s : ResStringList) {
- System.out.println(s);
- allResults += s;
- }
- mapView.getController().animateTo(result.getStart().pt);
- }
- public void onGetDrivingRouteResult(MKDrivingRouteResult res,
- int error) {
- }
- public void onGetWalkingRouteResult(MKWalkingRouteResult res,
- int error) {
- }
- public void onGetBusDetailResult(MKBusLineResult result, int iError) {
- if (iError != 0 || result == null) {
- Toast.makeText(BusRouteSysActivity.this, "抱歉,未找到结果",
- Toast.LENGTH_LONG).show();
- return;
- }
- allResults = "";
- for (int i = 0; i < result.getBusRoute().getNumSteps(); i++) {
- allResults += result.getStation(i).getContent() + "-->";
- textViewTop.setText(allResults);
- }
- RouteOverlay routeOverlay = new RouteOverlay(
- BusRouteSysActivity.this, mapView);
- // 此处仅展示一个方案作为示例
- routeOverlay.setData(result.getBusRoute());
- mapView.getOverlays().clear();
- mapView.getOverlays().add(routeOverlay);
- mapView.invalidate();
- mapView.getController().animateTo(
- result.getBusRoute().getStart());
- }
- @Override
- public void onGetAddrResult(MKAddrInfo arg0, int arg1) {
- // TODO Auto-generated method stub
- }
- });
更多Android相关信息见Android 专题页面 http://www.bkjia.com/topicnews.aspx?tid=11
评论暂时关闭