美文网首页
解决百度导航第三方冲突问题

解决百度导航第三方冲突问题

作者: 纵横小二 | 来源:发表于2016-12-28 16:51 被阅读791次

说到百度地图,哎,一把血泪史啊。说到百度地图导航功能简直我想哭啊。

当年做一个基于地图的app,本来基本完工了,老大说加个导航吧,我一看老大发话了,加就加呗。老大说给你两天做完吧。当时我就爆发了我的小宇宙啊,什么两天!!! 两天!!! 卧槽,你看不起谁呢!半天!(当年原谅我的年少轻狂,不知天高地厚) 然后牛逼都吹了,就开始做呗。然后我就懵逼了,导入导航sdk,配一下基础环境,这种渣渣的小事,10分钟干掉。就当我想开展下一步的时候,忽然一股血光,出现在我的屏幕上,卧槽,xcode大姨妈了。竟然爆红了。我一看肯定导航sdk有问题啊。心想百度导航页太坑了吧,刚导入就把xcode大姨妈给搞出来了(完了,老司机的驾照暴露了。。。)然后没办法啊,有问题就解决呗。百度一下,官方说sdk跟第三方库冲突,会出问题的第三方库有 MBProgressHUD、AFNetworking。并给了两种解决方案:

临时解决方案:把libbaiduNaviSDK.a移到“Linked Frameworks and Libraries”的最后一个。

使用v3.0.2,官网上的版本是v3.0.0,论坛的是v3.0.2,并附有下载链接。提示:下载的v3.0.2不带libbaiduNaviSDK.a文件,请将v3.0.0的.a文件拖入工程。

当我性质勃勃的按方案一,做了之后,卧槽坑人啊,不管用啊。。那就方案二吧,结果用公司的龟速网,终于下了200M的3.0.2之后,然后替换完sdk,commit+b,卧槽,又坑我。还是不行啊。

后来发现这两种解决方案,基本看脸啊,谁让我长了一张,遭人嫉妒的脸呢,哎,故意跟我过不去啊。没办法自己解决吧。不就是个编译错误嘛,首先我就把麻痹progres给干掉了。。我的心啊,换上mvprogress,修改N处代码,编译,果然编译错误少了一个,最后爆红在afn的一个文件,此时宝宝已经崩溃了,你不能让我再干掉anf换成asi吧。此时已经临近与组长的半天之约了。一怒之下,把debug模式调成release模式,卧槽奇迹发生了,编译竟然通过了。此时上午结束还有5分钟,然后贴上下面的导航代码搞定。(唉,奉劝各位程序员同仁,努力工作,为了自己吹过的牛逼。。。)

//真实GPS导航

- (void)realNavi

{

if (![self checkServicesInited]) return;

[self startNavi];

}

- (void)startNavi

{

BOOL useMyLocation = YES;

NSMutableArray *nodesArray = [[NSMutableArray alloc]initWithCapacity:2];

//起点 传入的是原始的经纬度坐标,若使用的是百度地图坐标,可以使用BNTools类进行坐标转化

CLLocation *myLocation = [BNCoreServices_Location getLastLocation];

BNRoutePlanNode *startNode = [[BNRoutePlanNode alloc] init];

startNode.pos = [[BNPosition alloc] init];

if (useMyLocation) {

startNode.pos.x = myLocation.coordinate.longitude;

startNode.pos.y = myLocation.coordinate.latitude;

startNode.pos.eType = BNCoordinate_OriginalGPS;

}

else {

startNode.pos.x = 116.;

startNode.pos.y = 22;

startNode.pos.eType = BNCoordinate_BaiduMapSDK;

}

[nodesArray addObject:startNode];

BNRoutePlanNode *endNode = [[BNRoutePlanNode alloc] init];

endNode.pos = [[BNPosition alloc] init];

endNode.pos.x = [mapaccount.longitude doubleValue];

endNode.pos.y = [mapaccount.latitude doubleValue];

endNode.pos.eType = BNCoordinate_BaiduMapSDK;

[nodesArray addObject:endNode];

[BNCoreServices_RoutePlan startNaviRoutePlan:BNRoutePlanMode_Recommend naviNodes:nodesArray time:nil delegete:self userInfo:nil];

}

#pragma mark - BNNaviRoutePlanDelegate

//算路成功回调

-(void)routePlanDidFinished:(NSDictionary *)userInfo

{

NSLog(@"算路成功");

//路径规划成功,开始导航

[BNCoreServices_UI showPage:BNaviUI_NormalNavi delegate:self extParams:nil];

}

//算路失败回调

- (void)routePlanDidFailedWithError:(NSError *)error andUserInfo:(NSDictionary*)userInfo

{

switch ([error code]%10000)

{

case BNAVI_ROUTEPLAN_ERROR_LOCATIONFAILED:

[SVProgressHUD showErrorWithStatus:@"暂时无法获取您的位置,请稍后重试"];

NSLog(@"暂时无法获取您的位置,请稍后重试");

break;

case BNAVI_ROUTEPLAN_ERROR_ROUTEPLANFAILED:

[SVProgressHUD showErrorWithStatus:@"无法发起导航"];

NSLog(@"无法发起导航");

break;

case BNAVI_ROUTEPLAN_ERROR_LOCATIONSERVICECLOSED:

NSLog(@"定位服务未开启,请到系统设置中打开定位服务。");

[SVProgressHUD showErrorWithStatus:@"定位服务未开启"];

break;

case BNAVI_ROUTEPLAN_ERROR_NODESTOONEAR:

NSLog(@"起终点距离起终点太近");

[SVProgressHUD showErrorWithStatus:@"起终点距离太近"];

break;

default:

NSLog(@"算路失败");

[SVProgressHUD showErrorWithStatus:@"算路失败"];

break;

}

}

相关文章

  • 百度地图之导航bug

    参考:百度地图SDK和百度导航SDK合并冲突问题 百度地图sdk和导航sdk共同使用 百度导航SDK是用于导航的,...

  • 解决百度导航第三方冲突问题

    说到百度地图,哎,一把血泪史啊。说到百度地图导航功能简直我想哭啊。 当年做一个基于地图的app,本来基本完工了,老...

  • 百度导航冲突解决

    百度导航需要导入这个文件,cocopod 导入的没有这个,BaiduNaviSDK是直接通过手动拉进去的,3.0....

  • Android 调用百度导航

    我的博客 实现效果:传入高德坐标数据正确调起百度地图导航 问题 最近项目中需要调用第三方导航(本地Android项...

  • iOS使用百度导航弹出导航页面时白色导航栏一闪而过

    问题:iOS使用百度导航弹出导航页面时白色导航栏一闪而过,骚等一会儿导航栏就会自己消失,如图。 解决问题的思路 1...

  • iOS使用百度导航弹出导航页面时白色导航栏一闪而过

    问题:iOS使用百度导航弹出导航页面时白色导航栏一闪而过,骚等一会儿导航栏就会自己消失,如图。 解决问题的思路 1...

  • app 依赖管理

    参考-解决库依赖冲突问题 参考-查看第三方库依赖树 参考-依赖管理 good 参考-依赖管理

  • Program type already present: co

    一、问题 二、解决1、jar包或第三方库冲突 2、包名冲突,多个模块情况有相同包名,把重复的包名改掉、

  • iOS重新打包静态库

    接入第三方SDK时,可能会遇到多个库文件符号冲突的问题,找出冲突符号,删除,再重新打包库文件可解决一部分问题,主要...

  • 疗愈是什么?

    找到旧伤和自己和解. 解决冲突轻松活 发了问题解决冲突 解决冲突痛快活着 通过决察发现问题解决冲突和自己和解痛快活...

网友评论

      本文标题:解决百度导航第三方冲突问题

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