百度地图SDK for Android【路径规划】
来源:互联网 发布:软件开发团队建设 编辑:程序博客网 时间:2024/04/20 02:28
http://blog.csdn.net/baidulbs/article/details/8560431
1路径服务简介
路径规划实际上是一种特殊的检索服务,因此,在使用路径规划服务之前首先要对检索相关的方法进行初始化,具体介绍请参考检索服务部分中的第一章节。
注意:在使用检索服务时,请明确唯一的起点和终点,否则将不能搜到您所需结果;当起点或终点信息不唯一时,SDK会为您返回一个起点/终点列表,您可通过选择列表中的信息来完成起点/终点的唯一选择,然后再进行路径搜索。
2路径分析
2.1驾车线路搜索
例如:检索从天安门到百度大厦的驾车路线(核心代码如下):
- MKPlanNode start = new MKPlanNode();
- start.pt = new GeoPoint((int) (39.915 * 1E6), (int) (116.404 * 1E6));
- MKPlanNode end = new MKPlanNode();
- end.pt = new GeoPoint(40057031, 116307852);// 设置驾车路线搜索策略,时间优先、费用最少或距离最短
- mMKSearch.setDrivingPolicy(MKSearch.ECAR_TIME_FIRST);
- mMKSearch.drivingSearch(null, start, null, end);
获取结果并展示时,需要开发者实现MKSearchListener接口中的onGetDrivingRouteResult方法,例如:
- @Override
- public void onGetDrivingRouteResult(MKDrivingRouteResult result, int iError) {
- if (result == null) {
- return;
- }
- RouteOverlay routeOverlay = new RouteOverlay(MyMapActivity.this, mMapView); // 此处仅展示一个方案作为示例
- routeOverlay.setData(result.getPlan(0).getRoute(0));
- mMapView.getOverlays().add(routeOverlay);
- mMapView.refresh();
- }
运行结果如下所示:
2.2步行线路搜索
步行线路搜索与驾车路线搜索类似,只需将mMKSearch.drivingSearch(null, start, null, end)修改为mMKSearch.walkingSearch(null, start, null, end),获取结果的方法改为重写onGetWalkingRouteResult即可,此处不再赘述。
2.3公交线路搜索
公交线路搜索的方法为transitSearch(String city, MKPlanNode start, MKPlanNode end),city:为待查公交线路所在城市,start和end分别是起点和终点;获取结果的方法改为重写onGetTransitRouteResult方法(具体使用方法与驾车及步行路线搜索类似,此处不再给出核心代码)。
此外,公交方面还可根据公交线路的id对公交的详细信息进行搜索,具体步骤如下:
第一步:利用兴趣点搜索的方法获取待查公交线路的信息;
- mMKSearch.poiSearchInCity("北京", "717");
第二步:获取公交线路的id,并以此作为公交详细信息搜索的关键字;
- @Override
- public void onGetPoiResult(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 onGetBusDetailResult(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());
- }
公交详细信息展示结果如下图所示:
更多详细信息请登录百度地图API官方网站:http://developer.baidu.com/map/
百度地图API论坛:http://bbs.lbsyun.baidu.com/
- 百度地图SDK for Android【路径规划】
- 百度地图SDK for Android【路径规划】
- 百度地图SDK for Android【Demo路径规划】
- Android 百度地图路径规划
- 百度地图SDK for Android
- 百度地图SDK for Android【离线地图】
- 百度地图SDK for Android【离线地图】
- android 百度地图路径规划,去掉图标
- 百度地图规划路径
- 百度地图SDK导航(路径规划+实时导航)
- 百度地图SDK for Android 2.1版本发布,支持自定义view、自定义路线规划等
- 百度地图SDK for Android【简介】
- 百度地图SDK for Android【Hello World】
- 百度地图SDK for Android【检索服务】
- 百度地图SDK for Android【覆盖物】
- 百度地图SDK for Android【定位】
- 百度地图SDK for Android【事件监听】
- 百度地图SDK for Android【事件监听】
- Android ProgressBar自定义图片进度,自定义渐变色进度条
- C程序设计语言 Exercise 2-9
- 归并排序
- 百度地图SDK for Android【Demo点击屏幕获取地理坐标】
- 安装ttf-mscorefonts-installer的方法
- 百度地图SDK for Android【路径规划】
- Android网络编程之Http通信
- 设备交互验证
- 谈谈软件开发中的坚持
- 百度地图SDK for Android【Demo地图图层】
- Hibernate延迟加载
- 百度地图SDK for Android【Demo兴趣点搜索】
- ecshop中 dwt, lbi 文件详解
- Android里透明的ListView