实时导航与模拟导航 最后更新时间: 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);