百度的SDK都是分开的,需要什么功能再集成。除了基础地图,添加导航需要下载百度导航SDK。按照文档集成环境:
文档:
百度文档
注册得到appKey后,需要在工程里做如下步骤代码:
pragma mark初始化导航idk
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[BNCoreServices_Instance initServices:APPKey_BL];
[BNCoreServices_Instance startServicesAsyn:nil fail:nil];
}
在需要导航的页面:
导入头文件,代理:
BNNaviRoutePlanDelegate,BNNaviUIManagerDelegate
实现代理方法即可集成导航:
- (void)startNavi
{
//节点数组
NSMutableArray *nodesArray = [[NSMutableArray alloc] initWithCapacity:2];
//起点
UserDefault *userdefault = [UserDefault defaultUserCenter];
BNRoutePlanNode *startNode = [[BNRoutePlanNode alloc] init];
startNode.pos = [[BNPosition alloc] init];
startNode.pos.x = [userdefault.lon floatValue];
startNode.pos.y = [userdefault.con floatValue];
startNode.pos.eType = BNCoordinate_BaiduMapSDK;
[nodesArray addObject:startNode];
//终点
BNRoutePlanNode *endNode = [[BNRoutePlanNode alloc] init];
endNode.pos = [[BNPosition alloc] init];
endNode.pos.x = [datasourceModel.lon floatValue];
endNode.pos.y = [datasourceModel.lat floatValue];
endNode.pos.eType = BNCoordinate_BaiduMapSDK;
[nodesArray addObject:endNode];
//发起路径规划
[BNCoreServices_RoutePlan startNaviRoutePlan:BNRoutePlanMode_Recommend naviNodes:nodesArray time:nil delegete:self userInfo:nil];
}
pragma mark -BNRoutePlanDelegate
//算路成功回调
-(void)routePlanDidFinished:(NSDictionary *)userInfo
{
NSLog(@"算路成功");
//路径规划成功,开始导航
[BNCoreServices_UI showNaviUI: BN_NaviTypeReal delegete:self isNeedLandscape:YES];
}