实时导航
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();
}
