Skip to content

导航面板使用介绍

用路线规划的数据导航

路线规划得到的数据传给地图后,就可以用来导航。调用DMKNavigationManagerstartNavigation:方法,通过布尔值控制进入全屏导航还是轻导航

[self.navigationManager startNavigation:YES];

接收导航播报数据

实现DMKNavigationManagerDelegate的`

  • (void)returnTTSValue:(NSString *)TTSContent params:(NSDictionary *)params; `方法可以得到导航过程中语音播报的数据:
objc
- (void)returnTTSValue:(NSString *)TTSContent params:(NSDictionary *)params {
    self.ttsLabel.text = TTSContent;
    if([params objectForKey:@"path"] && ((NSString *)[params objectForKey:@"path"]).length > 0) {
        // 处理“叮”提示音
    }
}

如果导航播报中包含“叮”的提示音,会通过params字典中的path数据把提示音的文件路径传出来

导航语音播报能力

SDK仅提供导航播报文案,文案播报由接入方调用第三方TTS实现。

点击退出按钮

在全屏导航界面,如果点击退出按钮,会触发一个exitNavi回调,可以在回调中退出导航界面,或者切换到轻导航:

objc
- (void)exitNavi {
    // 切换到轻导航
    [self.navigationManager startNavigation:YES];
}

进行主辅路和桥上、桥下切换

导航过程中,如果遇到有主路、辅路的情况,或可以切换到高架桥上、桥下的情况,SDK支持切换。需要实现以下代理方法:

objc
- (void)showParallelRoadButton:(BOOL)isMain {
    // 在UI显示主辅路切换按钮
}

- (void)hideParallelRoadButton {
    // 在UI隐藏主辅路切换按钮
}

- (void)showElevatedBridgeButton:(BOOL)isUp {
    // 在UI显示桥上桥下切换按钮
}

- (void)hideElevatedBridgeButton {
    // 在UI隐藏桥上桥下切换按钮
}

当经过可以切换的地方,SDK会调用相关的显示方法,驶离这类区域的时候,SDK会调用相关的隐藏方法。根据这些方法控制按钮的显示和隐藏,这样用户在按钮显示时机内,可以方便进行切换

用户点击主辅路切换按钮后,需要进行一次新的路线规划,才能将路线切换到预期的位置:

[self.navigationManager switchParallelRoad:DMKRouteSearchTypeOrder];

如果点击的是桥上桥下按钮需要调用:

[self.navigationManager switchElevatedRoad:DMKRouteSearchTypeOrder];

按钮由调用方自己绘制和管理,SDK不提供UI。

如需实现更多功能请参考API文档