全部服务产品
开发者频道
定价
登录
骑行导航
下载开发文档
骑行导航简介

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

骑行导航功能实现

注册监听

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

BMKCycleNavigationManager *manager = [BMKCycleNavigationManager sharedManager];
manager.routePlanDelegate = self; //设置算路回调
manager.routeGuidanceDelegate = self; //设置导航状态信息回调
manager.ttsPlayerDelegate = self; //设置语音播报回调
引擎初始化

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

使用方法如下:

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

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

使用方法如下:

BMKCycleNaviLaunchParam *param = [[BMKCycleNaviLaunchParam alloc] init];
BMKCycleNaviRouteNodeInfo *startNode = [[BMKCycleNaviRouteNodeInfo alloc] init];
startNode.location = _startAnnotation.coordinate; // 设置起点
BMKCycleNaviRouteNodeInfo *endNode = [[BMKCycleNaviRouteNodeInfo alloc] init];
endNode.location = _endAnnotation.coordinate; // 设置终点
param.startNode = startNode;
param.endNode = endNode;
// 设置算路方式
param.startNode.type = BMKWalkNavigationRouteNodeLocation;
param.endNode.type = BMKWalkNavigationRouteNodeLocation;
[[BMKCycleNavigationManager sharedManager] routePlanWithParams:param];
弹出导航页面

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

使用方法如下:

#pragma mark - <BMKWalkNaviCalcRouteDelegate>
/// 引擎算路结果
- (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);
}
}
开始导航

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

调用- (BOOL)startCycleNavi; 方法开始骑行导航。

使用方法如下:

//初始化导航引擎时开发者提供的导航页面
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[[BMKCycleNavigationManager sharedManager] startCycleNavi];
}
其他监听回调说明

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

BMKWalkNaviCalcRouteDelegatee

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

/// 引擎算路结果
/// @param errorCode 错误码
- (void)onNaviCalcRouteResult:(BMKWalkCycleRoutePlanErrorCode)errorCode;
- (void)onNaviCalcRouteResult:(BMKWalkCycleRoutePlanErrorCode)errorCode naviType:(BMKWalkCycleNavigationType)naviType;

BMKWalkCycleManagerDelegate

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

BMKWalkCycleRouteGuidanceDelegate

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

·详见 BMKWalkCycleNavigationDelegates.h 头文件。

BMKWalkCycleTTSPlayerDelegate

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

·建议使用百度语音识别服务SDK。下载地址:http://yuyin.baidu.com/asr/download

上一篇

步骑行导航TTS

下一篇

步行导航

本篇文章对您是否有帮助?