实时导航
NaviSession类包含了所有导航所需的逻辑和相关操作,如算路、模拟导航、路口放大图控制、电子眼播报控制等。其中导航定位提供了相关接口,允许用户使用自定义的定位方法来提供导航所必须的GPS信息。用户还可以自定义语音播报逻辑。
导航初始化代码示例如下所示:
/** * 初始化导航基础参数 */ // 设置导航基础参数 mNaviSetting = NaviSetting.getInstance(); // 初始化路线计划 NaviSessionParams params = new NaviSessionParams(); // 导航初始化参数配置信息 /** * 配置使用的子模块:cameraWarning(电子眼模块); expandView(放大图模块); * arrowRenderer(转弯箭头绘制模块); highwayGuide(高速模式模块); * speedLimitWarning(限速设置模块); adminSpeaker(行政区划播报) */ // 是否启用在线路口放大图 params.enableOnlineJunctionView = true; // 使用引擎提供的GPS模块定位 params.useNaviCoreGPS = true; // 算路完成后是否自动采纳路线结果用于导航. params.autoTakeRoute = true; // 偏航后是否自动重计算 params.autoReroute = true; // 获取导航实例 mNaviSession = NaviSession.getInstance(); // 初始化导航引擎模块。用于初始化引擎的NaviSession模块相关资源,应该在应用程序初始化阶段调用 mNaviSession.init(this, this, params); // 默认导航状态为暂停状态 mNaviSession.pauseNavi(); // 默认在线导航 mNaviSession.setNaviMode(NaviSession.Mode.offline); // 当前路线详情的生成模式 mNaviSetting.setRouteDirectionsFlag(RouteBase.DirectionsFlag.origin); /** * 设置算路方式: * 单条路 NaviSession.RouteMethod.single * 多规则 NaviSession.RouteMethod.multipleRule * 多结果 NaviSession.RouteMethod.multipleResult **/ mNaviSetting.setRouteMethod(NaviSession.RouteMethod. single); // 默认在线查询 mNaviSetting.setPoiQueryMode(PoiQuery.Mode.online);
实时导航,也可以称为GPS导航,是通过连续的GPS定位信息来驱动进行的导航,用于实际的导航过程。在路线规划成功以后(驾车或步行),就可以开始导航了。示例代码如下:
// 实时导航 mNaviSession.endManeualStartState(); // 结束手动起点状态 mNaviSession.enableSound(true); // 打开实时语音播报 // 点击导航按钮 恢复导航,导航开始,在导航初始化时默认要把导航状态设置为暂停状态 if (mNaviSession.isNaviPaused()) { mNaviSession.resumeNavi(); }