美文网首页
iOS【应用技术篇-1】 3步快速集成百度导航

iOS【应用技术篇-1】 3步快速集成百度导航

作者: 90后的思维 | 来源:发表于2016-12-13 14:19 被阅读109次

    很多小伙伴在做项目中都会用到导航功能,这一期就为大家带来快速集成导航的方法,这里使用的是百度导航(优点:集成方便算路快,不用跳转,满满的套路,CV即可)。

    第一步:导入百度SDK,手动添加依赖库HelloWorld-3-1.png配置.plist文件

    第二步appdelegate里注册百度SDK//***百度地图***//官网注册申请密钥key    [BNCoreServices_Instance initServices:@"lKWaL65uOvOBZ5rw50XA7Ukv5HhSVQHm"];    [BNCoreServices_Instance startServicesAsyn:nil fail:nil];在导航的控制器类里添加协议####用起点坐标和终点坐标计算路径

    第三步

    计算导航路径

    #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时最好添加到忽略文件里。

    相关文章

      网友评论

          本文标题:iOS【应用技术篇-1】 3步快速集成百度导航

          本文链接:https://www.haomeiwen.com/subject/ntfbmttx.html