浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。

iOS 地图SDK

百度地图SDK是一套应用程序接口, 通过调用地图SDK接口,开发者可以轻松访问百度地图的服务和数据,构建功能丰富、交互性强的地图类应用程序。

步行导航简介

V4.2.0 新增步行导航功能,支持普通步行导航、步行AR导航、偏航纠偏等导航功能。

下载开发包

骑行导航和步行导航均位于步行导航(BaiduMapAPI_WalkNavi)组件内,
步行导航组件集成依赖于地图SDK其他两个组件:BaiduMapAPI_Base、BaiduMapAPI_Map_For_WalkNavi。BaiduMapAPI_Map_For_WalkNavi组件包含了BaiduMapAPI_Map组件的所有功能,无需重复集成BaiduMapAPI_Map组件,请开发者注意选择。
您可以使用一体化下载平台 http://lbsyun.baidu.com/index.php?title=iossdk/sdkiosdev-download 进行下载。

注意:步骑行导航组件BaiduMapAPI_WalkNavi内包含资源文件navigation.bundle,里面包含步骑行导航的重要资源文件,需要手动拖到工程中。
添加方法: 选中工程名,在右键菜单中选择Add Files to “工程名”…,从BaiduMapAPI_WalkNavi//Resources文件中选择navigation.bundle文件,并勾选“Copy items if needed”复选框,单击“Add”按钮,将资源文件添加到工程中。

相机权限

步行AR导航需要启用相机权限,需要在您APP的plist文件中配置Privacy - Camera Usage Description参数,请您注意。

下面以发起步行导航为例,说明如何使用步行导航SDK。

注册监听

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

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    BMKWalkNavigationManager *manager = [BMKWalkNavigationManager sharedManager];
    manager.routePlanDelegate = self;  //设置算路回调
    manager.routeGuidanceDelegate = self;  //设置导航状态信息回调
    manager.ttsPlayerDelegate = self;  //设置语音播报回调
}
引擎初始化

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

使用方法如下:

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

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

使用方法如下:

BMKWalkNaviLaunchParam *param = [[BMKWalkNaviLaunchParam alloc] init];
param.startPoint = _startAnnotation.coordinate; //设置起点
param.endPoint = _endAnnotation.coordinate; //设置终点
[[BMKWalkNavigationManager sharedManager] routePlanWithParams:param];

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

#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(@"算路失败");
    }
}

开始导航

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

调用- (BOOL)startWalkNavi:(BMKWalkNavigationMode)navigationMode;方法,参数navigationMode为导航模式,可以直接发起普通导航,也可以直接发起AR导航,请注意选择。

使用方法如下:

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

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

BMKWalkCycleRoutePlanDelegate

·步行、骑行导航算路代理类,提供两个回调方法,分别是开始算路和算路结果返回。

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

BMKWalkCycleRouteGuidanceDelegate

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

·详见 BMKWalkCycleNavigationDelegates.h 头文件。

BMKWalkCycleTTSPlayerDelegate

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

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