独立路径规划 最后更新时间: 2021年01月22日
基本介绍
独立路径规划是指路径规划的结果不会自动应用于当前导航,也不会干扰当前的导航,需要手动调用API传入路径规划结果来开始导航。可用于不干扰本次导航的单独路径规划场景,比如路线预览等。适用于驾车/货车路径规划、步行路径规划、骑行路径规划。支持以下几种功能的路径规划功能:
- 无起点路径规划:路径规划时,起点坐标传空
- 经纬度路径规划:路径规划时,起终点NaviPoi只传经纬度
- POI路径规划:路径规划时,可传入POIID,提高规划的准确性。
独立路径规划功能
要实现独立路径规划功能,需要了解以下几个接口:
1.驾车/货车/骑行/步行独立路径规划的接口
调用接口如下,位于AMapNavi中:
/**
* POI独立算路
* @param fromPoi 起点信息
* @param toPoi 终点信息
* @param wayPoints 途经点信息
* @param strategy 算路策略: 驾车参考 {@link com.amap.api.navi.enums.PathPlanningStrategy},
* 骑步行参考 {@link TravelStrategy}
* @param transportType 交通类型 1-驾车 2-骑行 3-步行
* @param observer 算路结果监听器
* @return true-成功 false-失败
* @since 7.7.0
*/
public boolean independentCalculateRoute(NaviPoi fromPoi, NaviPoi toPoi, List<NaviPoi> wayPoints, int strategy, int transportType, AMapNaviIndependentRouteListener observer)
2.独立路径规划结果回调
独立算路与普通算路一样,需要监听算路回调结果。独立算路结果监听器AMapNaviIndependentRouteListener,在调用独立算路接口时,通过最后一个参数传入,内部通知算路结果。
AMapNaviIndependentRouteListener中一共有两个回调,如下:
/**
* 独立算路成功回调
* @param group 算路结果(路线组)
* @since 7.7.0
*/
void onIndependentCalculateSuccess(AMapNaviPathGroup group);
/**
* 独立算路失败回调
* @param routeResult 失败信息
* @since 7.7.0
*/
void onIndependentCalculateFail(AMapCalcRouteResult routeResult);
3.独立路径规划结果
算路成功时,会回调独立算路结果类 AMapNaviPathGroup 的一个对象。此类对象为一个路线集合,集合中会存储这当前的路线,并且可以操作路线的顺序,达到行前选路的效果。
AMapNaviPathGroup中核心方法如下:
/**
* 获取主路线
*
* @return
* @since 7.7.0
*/
public AMapNaviPath getMainPath()
/**
* 获取主路线的索引
*
* @return
* @since 7.7.0
*/
public int getMainPathIndex()
/**
* 获取指定索引的路线
*
* @param index 路线索引
* @return
* @since 7.7.0
*/
public AMapNaviPath getPath(int index)
/**
* 获取路线组的路线数量
*
* @return
* @since 7.7.0
*/
public int getPathCount()
/**
* 导航前选择主路线
*
* @param routeId 主路线的routeId,第一条路为12,第二条为13,第三条为14
* @since 7.7.0
*/
public boolean selectRouteWithIndex(int routeId)
独立路径导航
独立路径规划的路线结果可以为用户提供路线预览,也可以让用户用于导航,接口位于AMapNavi中,调用方式如下:
/**
* 使用指定路线开始导航
* @param naviType 导航类型 {@link com.amap.api.navi.enums.NaviType}
* @param pathGroup 路线组
* @return true-成功 false-失败
* @since 7.7.0
*/
public boolean startNaviWithPath(int naviType, AMapNaviPathGroup pathGroup)
注意:独立路线用于导航以后,AMapNavi中getNaviPath返回的路线会切换为独立的路线,之前的路线自动被清除,独立路线在导航销毁后会作废,不支持外部保存,不支持使用销毁前保存的独立路线进行导航。