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());
}
公交详细信息展示结果如下图所示:
分享到:
相关推荐
android studio集成百度地图SDK显示地图
Android 百度地图最新SDK v3.2.0和Android定位SDK:v5.0应用,博客中有详细介绍
百度地图sdk包,版本5.2.1 5_2_1
ArcGIS 开发 SDK for Android
ArcGIS Runtime SDK for Android开发介绍,来自Esri 中国技术人员的培训材料。
百度地图sdk的包,可以直接引入使用,应用于安卓手机软件开发
百度地图SDK5.0源码,官网下载,需要的直接下载后按自己的需求添加到自己的项目,直接上源码。
该资源是导入了百度地图SDK的Android项目,可正常的使用,作后续的开发
ArcGIS Runtime SDK for Android v1.1发布啦,增强和改进如下: API: 1、从ArcGIS.com上搜索和使用content、users和groups; 2、支持要素定义存储在本地设备上的要素的高级符号化渲染; 3、支持单个应用程序中多个...
android 百度地图学习SDK案例
天地图 Android SDK v3.01,包含jar包和libs
ArcGIS Rutime SDK for Android 1.0.1正式版离线文档
根据百度地图SDK,实现定位当前设备,并显示在地图上。
包含三个版本: arcgis-android-sdk-v10.2.9 arcgis-runtime-sdk-vandroid-100.0.0 arcgis-runtime-sdk-vandroid-100.1.0
百度地图Android定位SDK为基于移动客户端开发LBS应用提供基础定位能力,它较百度Android 地图SDK而言,专注满足用户获取当前位置与获得地址信息描述功能,软件包体积小。使用Android定位SDK,需先申请key,若你需要...
arcgis runtime sdk for android示例程序,包括地图浏览,标注和查询等功能的实现。
ArcGIS Runtime SDK for Android开发基础,分为上下篇。
安卓 android 百度地图 SDK GPS 位置获取 位置地图显示
百度地图sdk的集成demo
20190213最新安卓SDK下载Android SDK for Windows Version3.0.1