您现在的位置: 开发 > Android 导航SDK > 开发指南 > 专业导航 > 实时导航与模拟导航

实时导航与模拟导航 最后更新时间: 2021年01月22日

实时导航

实时导航,就是通过连续的定位信息来驱动的导航,应用于实际的导航过程。在路线规划成功后,才可以开始导航。

实现实时导航的步骤如下:

初始化导航并且监听回调

/**
 * 创建一个AMapNavi导航对象。
 *
 * @param context 对应的Context
 * @return 导航对象(单例)。
 */
 public synchronized static AMapNavi getInstance(Context context)
     
/**
 * 添加导航事件回调监听。
 *
 * @param naviListener 导航回调监听
 * @since 1.7.0
 */
 @Override
 public void addAMapNaviListener(AMapNaviListener naviListener)
    

规划路线

/**
 * 驾车POI算路
 * <p>
 * 该方法可以避免到达点问题导致的绕路,地铁等多出口类POI,也会导航到多个出口。
 * 注意:NaviPoi对象中,优先使用Poi id进行算路,失败则使用经纬度进行算路。
 * </p>
 *
 * @param fromPoi   起点poi {@link com.amap.api.navi.model.NaviPoi},若传入无效起点则使用当前位置
 * @param toPoi     终点poi {@link com.amap.api.navi.model.NaviPoi}
 * @param wayPoints 途经点poi {@link com.amap.api.navi.model.NaviPoi}
 * @param strategy  导航策略 {@link com.amap.api.navi.enums.PathPlanningStrategy}
 * @return 发起算路是否成功
 * @since 6.6.0
 */
 @Override
 public boolean calculateDriveRoute(NaviPoi fromPoi, NaviPoi toPoi, List<NaviPoi> wayPoints, int strategy) 

 接收算路回调 

/**
 * 路线规划成功回调,包括算路、导航中偏航、用户改变算路策略、行程点等触发的重算,具体算路结果可以通过{@link com.amap.api.navi.model.AMapCalcRouteResult}获取
 * 可以通过CalcRouteResult获取算路错误码、算路类型以及路线id
 * @param routeResult {@link com.amap.api.navi.model.AMapCalcRouteResult}
 * @since 6.1.0
 */
 void onCalculateRouteSuccess(AMapCalcRouteResult routeResult);

/**
 * 路线规划失败回调,包括算路、导航中偏航、用户改变算路策略、行程点等触发的重算,具体算路结果可以通过{@link com.amap.api.navi.model.AMapCalcRouteResult}获取
 * 可以通过CalcRouteResult获取算路错误码、算路类型以及路线id
 * @param routeResult {@link com.amap.api.navi.model.AMapCalcRouteResult}
 * @since 6.1.0
 */
 void onCalculateRouteFailure(AMapCalcRouteResult routeResult);

 算路成功后开始导航 

/**
 * 开始导航。实时导航会自动打开手机卫星定位功能。模拟导航则不需要使用定位功能。
 *
 * @param naviType 导航类型,1:实时导航 2:模拟导航。
 * @return 启动成功或者失败。true是成功,false是失败。
 */
 @Override
 public boolean startNavi(int naviType);
新用户
福利
示例
中心
常见
问题