`

百度地图-获取一条公交上的所有站点 获取两站直接的线路

 
阅读更多
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

			}

		});

分享到:
评论

相关推荐

    百度地图--公交路线查询.rar

    这个功能能够帮助用户获取从一个地点到另一个地点的公交线路信息,包括途径的所有站点以及总距离。通过分析提供的压缩包文件"百度地图--公交路线查询.rar",我们可以深入了解这个过程。 首先,我们需要引入百度地图...

    高仿百度地图,实现公交线路查询,完全更百度地图一样

    在描述中提到的“高仿百度地图”,意味着我们需要创建一个用户界面,能够清晰、直观地显示多条公交线路,包括线路名称、距离、时间等关键信息。这可能需要用到自定义视图组件,比如路线图、站名列表等。同时,考虑到...

    百度地图公交路线搜索

    此外,对于不熟悉公交线路的用户,百度地图还提供了路线导航功能,能够指引用户从当前位置到公交站的步行路径,以及在公交车上的行驶方向,确保用户不会错过站点。 另外,百度地图的【周边驾车搜索】功能则针对自驾...

    百度地图路线规划,实现公交路线搜索

    以下是对"百度地图路线规划,实现公交路线搜索"这一主题的详细解析。 1. **百度地图API**: 百度地图开放平台提供了JavaScript API、Android SDK、iOS SDK等多种开发工具,支持Web端和移动端应用的开发。通过这些...

    js点击绘制地铁线路图地铁站(可自定义颜色)百度map_subway line

    例如,`new BMap.Polyline(path, {strokeColor: 'red'})`将创建一条红色的地铁线路。 5. **地铁站标注**: 使用`BMap.Marker`类可以创建标注,表示地铁站。可以设置标注的图标、文本等属性。通过将标注添加到地图...

    百度地图实战开发--老罗源码

    公交查询功能是公共交通出行的重要参考,源码会介绍如何利用百度地图API获取公交线路信息,包括线路名称、站点列表、换乘方案等。这对于开发公共交通查询类应用是非常有价值的。 经纬度转换在地图开发中也非常重要...

    通过百度地图获取公交线路的站点坐标的js代码

    最近做百度地图的模拟数据,需要获取某条公交线路沿途站点的坐标信息,貌似百度没有现成的API,因此做了一个模拟页面,工具而已,IE6/7/8不支持 代码如下: &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta ...

    公交站点查询及转乘线路

    百度地图提供了丰富的地图数据和路线规划服务,能够返回多条公交线路供用户选择。 3. **转乘方案推荐**:系统不仅展示单条公交线路,还会提供最佳转乘方案。这通常涉及到算法优化,如最小化换乘次数、总行驶时间和...

    公交线路提示_公交线路测试_站点_

    4. 地图API集成:为了获取精确的线路和站点信息,程序可能与高德地图、百度地图等第三方地图服务进行了集成,调用其提供的API获取实时的公交数据。 5. 用户界面设计:程序需要一个友好的用户界面,让用户能够方便地...

    深圳市-地铁线路和站点名称shp矢量数据(精品)2021年-2030最新arcmap含规划路线.zip

    这意味着我们可以获取到每条线路的起点、终点、途径站点等具体细节,以及每个站点的精确地理位置。此外,文件还涵盖了2020年至2030年的规划地铁线路,这对于预测未来交通流量、评估新线路对周边区域的影响、规划房...

    【大数据】城市公交网络分析与可视化(一):基于Python爬取公交车行驶路径等基本信息

    借助高德地图API,爬取指定公交线路(国内绝大多数线路,给定城市名和路线名即可)的始发站、终点站、行驶路径(行车轨迹)、站点名称和坐标、行驶距离等与公交车有关的基本信息,并将其保存到Execl表格中!...

    百度地图api驾车、公交、步行、搜索、带检索功能的标注点数组

    百度地图API提供了公交线路查询、站点查找和换乘方案推荐等服务。开发者可以利用这些接口,为用户提供公共交通出行的完整规划,包括从当前位置出发,到目的地的最短时间或最少换乘次数的公交路线。 再者,**步行...

    Android 百度地图之自定义公交路线源码.7z

    在Android开发中,百度地图API是一个非常重要的工具,它提供了丰富的地图展示、定位、路径规划等功能,极大地便利了开发者在移动应用中集成地图服务。本项目着重探讨的是如何在百度地图SDK中实现自定义公交路线的...

    百度地图API开发

    在这个过程中,我们将探讨如何利用百度地图JavaScript API来实现智能搜索公交信息以及在地图上清晰地展示公交线路。 首先,我们要了解百度地图API的基础知识。它是一套提供给开发者使用的接口,通过这些接口,...

    Android百度地图之自定义公交路线源码.zip

    6. **数据解析与处理**:百度地图API返回的数据通常是JSON格式,你需要使用Gson或Jackson等库解析数据,提取出公交线路、站点信息。 7. **UI设计**:为用户提供友好的交互界面,可以设计自定义的路线选择列表,展示...

    自制高仿百度地图

    【自制高仿百度地图】项目是一个模仿百度地图的应用程序,旨在提供类似的功能,如路线规划、定位和线路切换。这个项目结合了多种技术,旨在创建一个用户友好的地图体验。以下是一些关键知识点的详细说明: 1. **...

    Android 百度地图之自定义公交路线源码.zip

    2. **解析结果**:百度地图API会返回一个包含多条路径的Result对象。你需要解析这些结果,提取出适合的公交路线,包括途径站点、预计时间、换乘次数等信息。 3. **绘制路线**:在地图上绘制公交路线。这通常涉及到...

    毕业设计-城市公交查询管理系统.zip

    城市公交查询管理系统是一款针对城市公共交通服务的信息系统,旨在方便市民查询公交线路、站点、时刻表等信息,提高出行效率。该系统通常包含多个模块,如线路管理、站点管理、时刻表管理、用户查询等,涉及数据库...

    ASP源码—开源ASP公交地图导航系统.zip

    1. **地图接口**:系统很可能集成了地图API,如谷歌地图、百度地图或高德地图,以展示地理位置信息和公交线路。开发者通过API调用获取地图数据,并在页面上渲染。 2. **公交线路查询**:用户输入起点和终点,系统将...

    苏州公交线路查询 m2me

    2. **地图API集成**:为了显示路线和公交站,应用通常会集成地图服务,如高德地图、百度地图或谷歌地图的API。开发者需要理解如何获取和使用这些API,处理地图的加载、定位、路线规划等功能。 3. **GPS定位**:应用...

Global site tag (gtag.js) - Google Analytics