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