您现在的位置:

实时导航

NaviSession类包含了所有导航所需的逻辑和相关操作,如算路、模拟导航、路口放大图控制、电子眼播报控制等。其中导航定位提供了相关接口,允许用户使用自定义的定位方法来提供导航所必须的GPS信息。用户还可以自定义语音播报逻辑。

导航初始化代码示例如下所示:

                (完整代码详见MapbarApiDemos工程的NaviActivity.java)
                /**
                * 初始化导航基础参数
                */
                // 设置导航基础参数
                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();
                }
            
返回顶部