浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。
 
第6行: 第6行:
  
 
使用方法如下:
 
使用方法如下:
<pre class="prettyprint codestyle">- (void)viewWillAppear:(BOOL)animated {
+
<div class="code_template"><div class="code_control"><div class="code_btn opt">Objective-C</div><div class="code_btn">Swift</div></div><div class="code_container"><pre class="code_item active prettyprint codestyle">BMKWalkNavigationManager *manager = [BMKWalkNavigationManager sharedManager];
    [super viewWillAppear:animated];
+
manager.routePlanDelegate = self;  //设置算路回调
    BMKWalkNavigationManager *manager = [BMKWalkNavigationManager sharedManager];
+
manager.routeGuidanceDelegate = self;  //设置导航状态信息回调
    manager.routePlanDelegate = self;  //设置算路回调
+
manager.ttsPlayerDelegate = self;  //设置语音播报回调</pre>
    manager.routeGuidanceDelegate = self;  //设置导航状态信息回调
+
<pre class="code_item prettyprint codestyle">let manager = BMKWalkNavigationManager.shared()
    manager.ttsPlayerDelegate = self;  //设置语音播报回调
+
manager?.routePlanDelegate = self  //设置算路回调
}
+
manager?.routeGuidanceDelegate = self  //设置导航状态信息回调
</pre>
+
manager?.ttsPlayerDelegate = self  //设置语音播报回调</pre>
</div><div class="devguideorder"><span>2</span>引擎初始化</div><div class="devguidecenter">
+
</div></div></div><div class="devguideorder"><span>2</span>引擎初始化</div><div class="devguidecenter">
 
开始步行导航前,需要进行步行导航引擎初始化。
 
开始步行导航前,需要进行步行导航引擎初始化。
  
 
使用方法如下:
 
使用方法如下:
<pre class="prettyprint codestyle">//由开发者提供导航页面
+
<div class="code_template"><div class="code_control"><div class="code_btn opt">Objective-C</div><div class="code_btn">Swift</div></div><div class="code_container"><pre class="code_item active prettyprint codestyle">//由开发者提供导航页面
 
WalkNaviViewController *controller = [[WalkNaviViewController alloc] init];
 
WalkNaviViewController *controller = [[WalkNaviViewController alloc] init];
 
//初始化
 
//初始化
第24行: 第24行:
 
if (inited) {
 
if (inited) {
 
     //初始化成功,发起算路...
 
     //初始化成功,发起算路...
}
+
}</pre>
</pre>
+
<pre class="code_item prettyprint codestyle">//由开发者提供导航页面
</div><div class="devguideorder"><span>3</span>发起算路</div><div class="devguidecenter">
+
let controller = WalkNaviViewController.init()
 +
//初始化
 +
let inited = BMKWalkNavigationManager.shared.initNaviEngine(controller)
 +
if inited {
 +
    //初始化成功,发起算路...
 +
}</pre>
 +
</div></div></div><div class="devguideorder"><span>3</span>发起算路</div><div class="devguidecenter">
 
引擎初始化成功之后,发起导航算路。使用方法如下:
 
引擎初始化成功之后,发起导航算路。使用方法如下:
<pre class="prettyprint codestyle">BMKWalkNaviLaunchParam *param = [[BMKWalkNaviLaunchParam alloc] init];
+
<div class="code_template"><div class="code_control"><div class="code_btn opt">Objective-C</div><div class="code_btn">Swift</div></div><div class="code_container"><pre class="code_item active prettyprint codestyle">BMKWalkNaviLaunchParam *param = [[BMKWalkNaviLaunchParam alloc] init];
 
param.startPoint = _startAnnotation.coordinate; //设置起点
 
param.startPoint = _startAnnotation.coordinate; //设置起点
 
param.endPoint = _endAnnotation.coordinate; //设置终点
 
param.endPoint = _endAnnotation.coordinate; //设置终点
[[BMKWalkNavigationManager sharedManager] routePlanWithParams:param];
+
[[BMKWalkNavigationManager sharedManager] routePlanWithParams:param];</pre>
</pre>
+
<pre class="code_item prettyprint codestyle">let param = BMKWalkNaviLaunchParam.init()
</div><div class="devguideorder"><span>4</span>弹出导航页面</div><div class="devguidecenter">
+
param.startPoint = startAnnotation.coordinate //设置起点
 +
param.endPoint = endAnnotation.coordinate //设置终点
 +
BMKWalkNavigationManager.shared()?.routePlan(withParams: param)</pre>
 +
</div></div></div><div class="devguideorder"><span>4</span>弹出导航页面</div><div class="devguidecenter">
 
算路成功后,即可以执行弹出导航页面(即引擎初始化时传入的参数controller)操作。使用方法如下:
 
算路成功后,即可以执行弹出导航页面(即引擎初始化时传入的参数controller)操作。使用方法如下:
<pre class="prettyprint codestyle">#pragma mark - BMKWalkCycleRoutePlanDelegate  算路回调
+
<div class="code_template"><div class="code_control"><div class="code_btn opt">Objective-C</div><div class="code_btn">Swift</div></div><div class="code_container"><pre class="code_item active prettyprint codestyle">#pragma mark - BMKWalkCycleRoutePlanDelegate  算路回调
 
//开始算路
 
//开始算路
 
- (void)onRoutePlanStart {
 
- (void)onRoutePlanStart {
第50行: 第59行:
 
         NSLog(@"算路失败");
 
         NSLog(@"算路失败");
 
     }
 
     }
 +
}</pre>
 +
<pre class="code_item prettyprint codestyle">//MARK:BMKWalkCycleRoutePlanDelegate  算路回调
 +
func onRoutePlanStart(_ naviType: BMKWalkCycleNavigationType) {
 +
    print("开始算路")
 
}
 
}
</pre>
+
func onRoutePlanResult(_ errorCode: BMKWalkCycleRoutePlanErrorCode, naviType: BMKWalkCycleNavigationType) {
</div><div class="devguideorder"><span>5</span>开始导航</div><div class="devguidecenter">
+
    if errorCode == BMKWalkCycleRoutePlanErrorCode.WALK_CYCLE_ROUTEPLAN_RESULT_SUCCESS {
 +
        print("算路成功")
 +
        //算路成功弹出导航页面
 +
        self.navigationController&nbsp;?.pushViewController(_controller, animated: true)
 +
 
 +
    } else {
 +
        NSLog("算路失败")
 +
    }
 +
}</pre>
 +
</div></div></div><div class="devguideorder"><span>5</span>开始导航</div><div class="devguidecenter">
 
在导航页面的- (void)viewWillAppear:(BOOL)animated方法中发起步行导航。调用- (BOOL)startWalkNavi:(BMKWalkNavigationMode)navigationMode;方法,参数navigationMode为导航模式,可以直接发起普通导航,也可以直接发起AR导航,请注意选择。使用方法如下:
 
在导航页面的- (void)viewWillAppear:(BOOL)animated方法中发起步行导航。调用- (BOOL)startWalkNavi:(BMKWalkNavigationMode)navigationMode;方法,参数navigationMode为导航模式,可以直接发起普通导航,也可以直接发起AR导航,请注意选择。使用方法如下:
<pre class="prettyprint codestyle">//初始化导航引擎时开发者提供的导航页面
+
<div class="code_template"><div class="code_control"><div class="code_btn opt">Objective-C</div><div class="code_btn">Swift</div></div><div class="code_container"><pre class="code_item active prettyprint codestyle">//初始化导航引擎时开发者提供的导航页面
 
- (void)viewWillAppear:(BOOL)animated {
 
- (void)viewWillAppear:(BOOL)animated {
 
     [super viewWillAppear:animated];
 
     [super viewWillAppear:animated];
 
     [[BMKWalkNavigationManager sharedManager] startWalkNavi:BMK_WALK_NAVIGATION_MODE_WALK_NORMAL];
 
     [[BMKWalkNavigationManager sharedManager] startWalkNavi:BMK_WALK_NAVIGATION_MODE_WALK_NORMAL];
}
+
}</pre>
</pre>
+
<pre class="code_item prettyprint codestyle">override func viewWillAppear(_ animated: Bool) {
</div></div><div class="bluetitle"><div class="services-title-text">监听回调说明</div></div>
+
    super.viewWillAppear(animated)
 +
    BMKWalkNavigationManager.shared()?.startWalkNavi(BMKWalkNavigationMode.WALK_NAVIGATION_MODE_WALK_NORMAL)
 +
}</pre>
 +
</div></div></div></div><div class="bluetitle"><div class="services-title-text">监听回调说明</div></div>
 
步行导航和骑行导航均使用相同的代理回调,回调中参数<span style="color:#FF0000;">naviType</span>会告知开发者当前回调是步行导航还是骑行导航,请开发者注意区分。
 
步行导航和骑行导航均使用相同的代理回调,回调中参数<span style="color:#FF0000;">naviType</span>会告知开发者当前回调是步行导航还是骑行导航,请开发者注意区分。
  

2020年3月26日 (四) 11:28的最后版本

步行导航简介

iOS 地图SDK自V4.2.0版本起新增步行导航功能,支持普通步行导航、步行AR导航、偏航纠偏等导航功能。

步行导航功能实现
1注册监听

步行导航提供给开发者三类监听,分别是步行导航算路回调、诱导信息回调、TTS语音播报文本。

使用方法如下:

Objective-C
Swift
BMKWalkNavigationManager *manager = [BMKWalkNavigationManager sharedManager];
manager.routePlanDelegate = self;  //设置算路回调
manager.routeGuidanceDelegate = self;  //设置导航状态信息回调
manager.ttsPlayerDelegate = self;  //设置语音播报回调
let manager = BMKWalkNavigationManager.shared()
manager?.routePlanDelegate = self  //设置算路回调
manager?.routeGuidanceDelegate = self  //设置导航状态信息回调
manager?.ttsPlayerDelegate = self  //设置语音播报回调
2引擎初始化

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

使用方法如下:

Objective-C
Swift
//由开发者提供导航页面
WalkNaviViewController *controller = [[WalkNaviViewController alloc] init];
//初始化
BOOL inited = [[BMKWalkNavigationManager sharedManager] initNaviEngine:controller];
if (inited) {
    //初始化成功,发起算路...
}
//由开发者提供导航页面
let controller = WalkNaviViewController.init()
//初始化
let inited = BMKWalkNavigationManager.shared.initNaviEngine(controller)
if inited {
    //初始化成功,发起算路...
}
3发起算路

引擎初始化成功之后,发起导航算路。使用方法如下:

Objective-C
Swift
BMKWalkNaviLaunchParam *param = [[BMKWalkNaviLaunchParam alloc] init];
param.startPoint = _startAnnotation.coordinate; //设置起点
param.endPoint = _endAnnotation.coordinate; //设置终点
[[BMKWalkNavigationManager sharedManager] routePlanWithParams:param];
let param = BMKWalkNaviLaunchParam.init()
param.startPoint = startAnnotation.coordinate //设置起点
param.endPoint = endAnnotation.coordinate //设置终点
BMKWalkNavigationManager.shared()?.routePlan(withParams: param)
4弹出导航页面

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

Objective-C
Swift
#pragma mark - BMKWalkCycleRoutePlanDelegate  算路回调
//开始算路
- (void)onRoutePlanStart {
    NSLog(@"开始算路");
}

//算路结果返回
- (void)onRoutePlanResult:(BMKWalkRoutePlanErrorCode)errorCode naviType:(BMKWalkCycleNavigationType)naviType {
    if (errorCode == BMKWALK_ROUTEPLAN_RESULT_SUCCESS) {
        NSLog(@"算路成功");
        //算路成功弹出导航页面
        [self.navigationController pushViewController:_controller animated:YES];
    } else {
        NSLog(@"算路失败");
    }
}
//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 {
        NSLog("算路失败")
    }
}
5开始导航

在导航页面的- (void)viewWillAppear:(BOOL)animated方法中发起步行导航。调用- (BOOL)startWalkNavi:(BMKWalkNavigationMode)navigationMode;方法,参数navigationMode为导航模式,可以直接发起普通导航,也可以直接发起AR导航,请注意选择。使用方法如下:

Objective-C
Swift
//初始化导航引擎时开发者提供的导航页面
- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [[BMKWalkNavigationManager sharedManager] startWalkNavi:BMK_WALK_NAVIGATION_MODE_WALK_NORMAL];
}
override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    BMKWalkNavigationManager.shared()?.startWalkNavi(BMKWalkNavigationMode.WALK_NAVIGATION_MODE_WALK_NORMAL)
}
监听回调说明

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

BMKWalkCycleRoutePlanDelegate

步行、骑行导航算路代理类,提供两个回调方法,分别是开始算路和算路结果返回。其中只有算路结果为成功的情况,开始步行导航,算路失败发起导航无效。

BMKWalkCycleRouteGuidanceDelegate

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

BMKWalkCycleTTSPlayerDelegate

骑行、步行导航TTS语音播报代理类,此组件只提供导航过程中的文本输出,不包含语音播报功能,需要自行传入对应的语音回调,形成播报功能。 建议使用百度语音识别服务SDK。下载地址:http://yuyin.baidu.com/asr/download

  • 文档根本没法用

  • 文档水平很差

  • 文档水平一般

  • 文档不错

  • 文档写的很好

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

提交反馈

拖动标注工具

添加矩形标注

添加箭头标注

完成

取消