未来行程路线规划 最后更新时间: 2021年01月22日
自地图 SDK 搜索功能 6.9.0 版本起新增未来行程路线规划,简称ETD。 未来出行规划(ETD)服务已覆盖全国所有城市,可提供未来7天的出行路线规划。
注意:下面介绍的功能使用的是地图SDK的搜索功能,需要在工程中导入[搜索功能库]
第一步, 初始化 RouteSearch 对象
routeSearch = new RouteSearch(this);
第二步, 设置数据回调监听器
routeSearch.setOnRoutePlanSearchListener(this);
第三步, 设置搜索参数
通过 DrivePlanQuery(RouteSearch.FromAndTo fromAndTo, int firstTime, int interval, int count) 设置搜索条件,方法对应的参数说明如下:
fromAndTo,路径的起点终点,必设。
firstTime,出发时间,第一个时间戳(unix时间戳,精确到秒),必设;
interval,规划的时间间隔,单位为秒,必设;
count,规划时间点个数,最大48个,必设。
设置终点的父POIID,无父POI的情况留空即可:
DrivePlanQuery.setDestParentPoiID(destParentPoiID)
设置规划策略模式,可选,默认为速度优先;详细策略请见[驾车策略说明]:
DrivePlanQuery.setMode(int mode)
设置车辆类型,默认为普通汽车:
DrivePlanQuery.setCarType(int carType)
DrivePlanQuery query = new DrivePlanQuery(fromAndTo, time + utils.queryFirstInterval, utils.queryInterval* 60, 48);
query
query.setMode(DRIVEINGPLANDEFAULT);
query.setCarType(0)
第四步,发送请求
使用类 RouteSearch 的 calculateDrivePlanAsyn(DrivePlanQuery driveQuery) 方法进行骑行规划路径计算。
routeSearch.calculateDrivePlanAsyn(query);
第五步,接收数据
在 RouteSearch.OnRoutePlanSearchListener接口回调方法 void OnRoutePlanSearchListener(DriveRouteResult result, int rCode) 处理驾车规划路径结果。返回的信息中包括:路线的距离、规划时间、路况情况等。
说明:
- 可以在回调中解析 result,获取驾车的路径;
- result.getPaths()可以获取到 DrivePath 列表,驾车路径的详细信息可参考 DrivePlanPath 类;
- 返回结果成功或者失败的响应码。1000为成功,其他为失败(详细信息参见网站开发指南-实用工具-错误码对照表)。
public void onDriveRoutePlanSearched(DriveRoutePlanResult result, int rCode) {
//解析result获取算路结果,可参考官方demo
}
第六步,ETD驾车策略说明
策略ID | 策略说明 |
---|---|
1 | 返回的结果考虑路况,尽量躲避拥堵而规划路径,与高德地图的“躲避拥堵”策略一致 |
2 | 返回的结果不走高速,与高德地图“不走高速”策略一致 |
3 | 返回的结果尽可能规划收费较低甚至免费的路径,与高德地图“避免收费”策略一致 |
4 | 返回的结果考虑路况,尽量躲避拥堵而规划路径,并且不走高速,与高德地图的“躲避拥堵&不走高速”策略一致 |
5 | 返回的结果尽量不走高速,并且尽量规划收费较低甚至免费的路径结果,与高德地图的“避免收费&不走高速”策略一致 |
6 | 返回路径规划结果会尽量的躲避拥堵,并且规划收费较低甚至免费的路径结果,与高德地图的“躲避拥堵&避免收费”策略一致 |
7 | 返回的结果尽量躲避拥堵,规划收费较低甚至免费的路径结果,并且尽量不走高速路,与高德地图的“避免拥堵&避免收费&不走高速”策略一致 |
8 | 返回的结果会优先选择高速路,与高德地图的“高速优先”策略一致 |
9 | 返回的结果会优先考虑高速路,并且会考虑路况躲避拥堵,与高德地图的“躲避拥堵&高速优先”策略一致 |
10 | 不考虑路况,返回速度最优、耗时最短的路线,但是此路线不一定距离最短 |
11 | 避让拥堵&速度优先&避免收费 |