iossdk | 百度地图api sdk-凯发k8官方旗舰厅

浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。
更新时间:2022-10-27
骑行导航简介

ios 地图sdk自v4.2.0版本起新增骑行导航功能,支持普通自行车骑行导航和电动车骑行导航、偏航纠偏等导航功能。

骑行导航功能实现

注册监听

骑行导航提供给开发者三类监听,分别是骑行导航算路回调、诱导信息回调、tts语音播报文本。 使用方法如下:

objective-c
swift
bmkcyclenavigationmanager *manager = [bmkcyclenavigationmanager sharedmanager];
manager.routeplandelegate = self;  //设置算路回调
manager.routeguidancedelegate = self;  //设置导航状态信息回调
manager.ttsplayerdelegate = self;  //设置语音播报回调
let manager = bmkcyclenavigationmanager.shared()
manager?.routeplandelegate = self  //设置算路回调
manager?.routeguidancedelegate = self  //设置导航状态信息回调
manager?.ttsplayerdelegate = self  //设置语音播报回调
引擎初始化

开始骑行导航前,需要进行骑行导航引擎初始化。

使用方法如下:

objective-c
swift
//由开发者提供导航页面
walknaviviewcontroller *controller = [[walknaviviewcontroller alloc] init];
//初始化
bool inited = [[bmkcyclenavigationmanager sharedmanager] initnaviengine:controller];
if (inited) {
    //初始化成功,发起算路...
}
let controller = walknaviviewcontroller.init()
let inited = bmkcyclenavigationmanager.shared.initnaviengine(controller)
if inited {
    //初始化成功,发起算路...
}
发起算路

引擎初始化成功之后,发起导航算路,其中bmkcyclenavilaunchparam的参数navitype用于指定是普通骑行导航或是电动车骑行导航。

使用方法如下:

objective-c
swift
bmkcyclenavilaunchparam *param = [[bmkcyclenavilaunchparam alloc] init];
param.startpoint = _startannotation.coordinate; //设置起点
param.endpoint = _endannotation.coordinate; //设置终点
param.navitype = bmk_walk_cycle_navigation_type_normal_cycle;
[[bmkcyclenavigationmanager sharedmanager] routeplanwithparams:param];
let param = bmkcyclenavilaunchparam.init()
param.startpoint = startannotation.coordinate //设置起点
param.endpoint = endannotation.coordinate //设置终点
param.navitype = bmkwalkcyclenavigationtype.walk_cycle_navigation_type_normal_cycle
bmkcyclenavigationmanager.shared()?.routeplan(withparams: param)
弹出导航页面

算路成功后,即可以执行弹出导航页面(即引擎初始化时传入的参数controller)操作。

使用方法如下:

objective-c
swift
#pragma mark - 
/// 引擎算路结果
- (void)onnavicalcrouteresult:(bmkwalkcyclerouteplanerrorcode)errorcode navitype:(bmkwalkcyclenavigationtype)navitype {
    if (errorcode == bmk_walk_cycle_routeplan_result_success) {
        if (navitype == bmk_walk_cycle_navigation_type_walk) {
            // 进入导航页面开始步行导航
            [[bmkwalknavigationmanager sharedmanager] startwalknaviwithparentcontroller:self ispush:yes];
        } else { 
        // 进入导航页面开始骑行导航
            [[bmkcyclenavigationmanager sharedmanager] startcyclenaviwithparentcontroller:self ispush:yes];
        }
    } else {
        nslog(@"sdk-引擎算路失败 %zd", errorcode);
    }
}
//mark:bmkwalkcyclerouteplandelegate  算路回调
 
//开始算路
func onrouteplanstart(_ navitype: bmkwalkcyclenavigationtype) {
    print("开始算路")
}
 
//算路结果返回
func onrouteplanresult(_ errorcode: bmkwalkcyclerouteplanerrorcode, navitype: bmkwalkcyclenavigationtype) {
if errorcode == bmkwalkcyclerouteplanerrorcode.walk_cycle_routeplan_result_success {
    print("算路成功")
    //算路成功弹出导航页面
    self.navigationcontroller ?.pushviewcontroller(_controller, animated: true)
} else {
    print("算路失败")
}
}
开始导航

在导航页面的- (void)viewwillappear:(bool)animated方法中发起骑行导航。

调用- (bool)startcyclenavi; 方法开始骑行导航。

使用方法如下:

objective-c
swift
//初始化导航引擎时开发者提供的导航页面
- (void)viewwillappear:(bool)animated {
    [super viewwillappear:animated];
    [[bmkcyclenavigationmanager sharedmanager] startcyclenavi];
}
//初始化导航引擎时开发者提供的导航页面
override func viewwillappear(_ animated: bool) {
    super.viewwillappear(animated)
    bmkcyclenavigationmanager.shared()?.startcyclenavi()
}
其他监听回调说明

步行导航和骑行导航均使用相同的代理回调,回调中参数navitype会告知开发者当前回调是骑行导航还是步行导航,请开发者注意区分。

bmkwalknavicalcroutedelegatee

·骑行、步行导航算路代理类,其中只有算路结果为成功的情况,开始骑行导航,算路失败发起导航无效。

/// 引擎算路结果
/// @param errorcode 错误码
- (void)onnavicalcrouteresult:(bmkwalkcyclerouteplanerrorcode)errorcode;
- (void)onnavicalcrouteresult:(bmkwalkcyclerouteplanerrorcode)errorcode navitype:(bmkwalkcyclenavigationtype)navitype;

bmkwalkcyclemanagerdelegate

·步行、骑行导航管理代理类,提供退出导航等回调。

bmkwalkcyclerouteguidancedelegate

·骑行、步行导航诱导信息代理类,提供12个回调方法,主要包括导航开始、结束,导航过程中偏航、偏航结束、诱导信息(包含诱导默认图标、诱导类型、诱导信息、剩余距离、时间、振动回调等)。

·详见 bmkwalkcyclenavigationdelegates.h 头文件。

bmkwalkcyclettsplayerdelegate

·骑行、步行导航tts语音播报代理类,此组件只提供导航过程中的文本输出,不包含语音播报功能,需要自行传入对应的语音回调,形成播报功能。

·建议使用百度语音识别服务sdk。下载地址:

  • 文档根本没法用

  • 文档水平很差

  • 文档水平一般

  • 文档不错

  • 文档写的很好

如发现文档错误,或对此文档有更好的建议,请在下方反馈。问题咨询请前往反馈平台提交工单咨询。

提交反馈

拖动标注工具

添加矩形标注

添加箭头标注

完成

取消

"));
网站地图