您现在的位置:

导航数据

【Mapbar Navigation SDK for iOS】提供相应的接口返回导航数据,具体数据包括:当前车的位置(经纬度),当前车头所朝方向,当前车速,当前道路名,当前路线的长度,路线剩余时间,当前转向标ID,建议的地图显示比例尺等数据,具体数据请参考【Mapbar Navigation SDK for iOS】接口说明文档。

            (完整代码详见 SDKDemo 工程的 MBNaviController.m)
            @property (nonatomic ,strong) MBNaviSession*naviSession;
            
            // 初始化MBNaviSession
            naviSession = [MBNaviSession sharedInstance];
            
            // 初始化MBNaviSessionParams 
            MBNaviSessionParams* params = [MBNaviSessionParams defaultParams];
            
            // 是否算路后自动开始导航[默认开启]
            params.autoTakeRoute = NO;
            
            // 是否启动路口放大图。默认关闭
            params.enableOnlineJunctionView = YES;
            
            // 设置导航相关参数
            naviSession.params = params;
            naviSession.delegate = self;
            naviSession.enableSound = YES;
            
            // 设置详细播报模式(前方去往****)
            [naviSession setNaviStartVoiceMode:MBNaviSessionNaviStartVoiceMode_detailed];
            
            // 开启摄像头播报
            [naviSession setEnableCamera:YES];
            
            // 设置在线/离线算路
            [naviSession setNavPreference:MBDataPreference_preferOnline];
            
            // 设置电子眼播报模式
            [naviSession setCameraMode:MBCamerFilterMode_all];
            
            // 设置语音播报模式
            [naviSession setGuidanceMode:MBGuidanceMode_safe];
            
            // 高速行程模块工作模式
            [naviSession setHighwayGuidemode:MBHighwayGuideMode_complete];
            
            // 设置导航 tmc 参数
            MBTmcOptions options;
            
            // 算路间隔(毫秒)
            options.rerouteCheckInterval = 1000;
            
            // 路线颜色更新间隔(毫秒)
            options.routeColorUpdateInterval = 1000;
            
            // 是否开启 TMC
            options.enableTmcReroute = NO;
            
            // 设置TMC相关选项
            [naviSession setTmcOptions:options];
            
            // 采纳指定的路线,将其设为当前路线,routeBase,请参考9.1算路
            [naviSession takeRoute:_routeBase];
            
            // MBNaviSessionDelegate
            - (void)naviSessionTracking:(MBNaviSessionData *)sData {
                NSLog(@"当前车的位置:%d,%d",sData.carPos.x,sData.carPos.y);
                NSLog(@"当前车头朝向:%ld",(long)sData.carOri); 
                NSLog(@"当前建议比例尺:%ld",(long)sData.suggestedMapScale);
                NSLog(@"是否有下一个转弯:%@,还有%ld米转弯",sData.hasTurn?@"是":@"没有",(long)sData.turnIconDistance);
                NSLog(@"当前转向标ID:%ld",(long)sData.turnIcon);
                NSLog(@"转弯之后的道路名称:%@",sData.nextRoadName);
                NSLog(@"当前所在道路名称:%@",sData.roadName);
                NSLog(@"\n");
            }
            
        
返回顶部