iOS黑科技【应用技术篇-1】 3步快速集成百度导航
2016-09-26 本文已影响1097人
小明大神
![](https://img.haomeiwen.com/i2031108/96464b360e5bf36f.gif)
很多小伙伴在做项目中都会用到导航功能,这一期就为大家带来快速集成导航的方法,这里使用的是百度导航(优点:集成方便算路快,不用跳转,满满的套路,CV即可)。
第一步:
导入百度SDK,手动添加依赖库�
![](https://img.haomeiwen.com/i2031108/f372fc8943aef903.png)
配置.plist文件
![](https://img.haomeiwen.com/i2031108/629d33749af0af36.png)
第二步
appdelegate里注册百度SDK
//***百度地图***
//官网注册申请密钥key
[BNCoreServices_Instance initServices:@"lKWaL65uOvOBZ5rw50XA7Ukv5HhSVQHm"];
[BNCoreServices_Instance startServicesAsyn:nil fail:nil];
在导航的控制器类里添加协议
<BNNaviUIManagerDelegate,BNNaviRoutePlanDelegate>
####用起点坐标和终点坐标计算路径
第三步
计算导航路径
#pragma mark 发起导航算路(起点和重点都放在这个方法里计算规划路径)
- (void)startCalculateNavi
{
//***节点数组***
NSMutableArray *nodesArray = [[NSMutableArray alloc] initWithCapacity:2];
//***起点***
//获得当前定位
CLLocation *myLocation=[BNCoreServices_Location getLastLocation];
BNRoutePlanNode *startNode=[[BNRoutePlanNode alloc] init];
startNode.pos=[[BNPosition alloc] init];
startNode.pos.x=myLocation.coordinate.longitude;
startNode.pos.y=myLocation.coordinate.latitude;
startNode.pos.eType=BNCoordinate_OriginalGPS;
//模拟定位点
// BNRoutePlanNode *startNode = [[BNRoutePlanNode alloc] init];
// startNode.pos = [[BNPosition alloc] init];
// startNode.pos.x = 113.936392;
// startNode.pos.y = 22.547058;
![Uploading baiduNavi_575714.gif . . .]
// startNode.pos.eType = BNCoordinate_BaiduMapSDK;
//将起始点加入到节点数组中
[nodesArray addObject:startNode];
//***终点***
BNRoutePlanNode *endNode = [[BNRoutePlanNode alloc] init];
endNode.pos = [[BNPosition alloc] init];
endNode.pos.x = 114.077075;
endNode.pos.y = 22.543634;
endNode.pos.eType = BNCoordinate_BaiduMapSDK;
[nodesArray addObject:endNode];
//***发起路径规划***
[BNCoreServices_RoutePlan startNaviRoutePlan:BNRoutePlanMode_Recommend naviNodes:nodesArray time:nil delegete:self userInfo:nil];
}
计算成功后回调方法,开始导航
#pragma mark 算路成功回调
-(void)routePlanDidFinished:(NSDictionary *)userInfo{
NSLog(@"算路成功");
//路径规划成功,开始导航
[BNCoreServices_UI showPage:BNaviUI_NormalNavi delegate:self extParams:nil];
}
路径计算失败回调
-(void)routePlanDidFailedWithError:(NSError *)error andUserInfo:(NSDictionary *)userInfo{
NSLog(@"导航失败");
}
集成排坑指南:
1.官网百度导航SDK更新到了3.0.0,(3.0.0会有MBProgresshud等三方库冲突问题,如果你的项目中使用了这些三方库就会报错),解决方法:使用百度导航3.02;
2.百度导航 TTS授权失败,解决方法:去百度地图官网申请成为开发者,再添加项目申请密钥key;
3.百度导航SDK封装的静态库单个文件就有200多M,git时最好添加到忽略文件里。
这一期就到这里了,亲们有什么意见和问题记得及时反馈哦,喜欢的话点个关注给个赞(づ ̄3 ̄)づ╭❤~
我们下期再会