开发 Android 导航SDK 开发指南 路线规划 独立路径规划

独立路径规划 最后更新时间: 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返回的路线会切换为独立的路线,之前的路线自动被清除,独立路线在导航销毁后会作废,不支持外部保存,不支持使用销毁前保存的独立路线进行导航。 

返回顶部 示例中心 常见问题 智能客服 公众号
二维码