iOS 百度地图导航SDK与第三方库冲突

之前做过一次关于基站定位�并带有导航功能,直接使用的百度地图iOS地图SDK,直接简单的完成了。新项目中也有导航功能,再次进入百度地图的开放平台,发现有个iOS导航SDK,想着这次的功能简单,不用再�下载所有的iOS地图SDK,用这个导航的SDK就行了。然而,折腾了好久...

iOS导航SDK

当你按照官网的详细步骤,获取密钥、下载SDK、集成到工程、添加依赖库、配置环境,以及温馨提示的权限问题、网络配置等完成之后。按下Command+B编译,如果顺利通过了,那么恭喜你,你可以关闭网页,继续写代码了(如果没问题也不会来看这篇文章了 - -!)。
具体的错误提示忘记截图了,大致的错误是第三方库冲突,会出问题的第三方库有 MBProgressHUD、AFNetworking、Masonry,其他库不清楚, 刚刚出现的时候我用CocoaPod把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文件拖入工程。

这两种我试过了,都没有成功。最终没有办法,继续使用iOS地图SDK

iOS地图SDK.png

Base为基础库,Utils用于导航计算使用。可根据项目需求添加。
使用:在AppDelegate初始化
调用的代码:

    //初始化调启导航时的参数管理类
    BMKNaviPara* para = [[BMKNaviPara alloc]init];
    //初始化起点节点
    BMKPlanNode* start = [[BMKPlanNode alloc]init];
    //指定起点经纬度
    CLLocationCoordinate2D coor1;
    coor1.latitude = ;
    coor1.longitude =  ;
    start.pt = coor1;
    //指定起点名称
    start.name = @"我的位置";
    //指定起点
    para.startPoint = start;
    
    //初始化终点节点
    BMKPlanNode* end = [[BMKPlanNode alloc]init];
    //指定终点经纬度
    CLLocationCoordinate2D coor2;
    coor2.latitude = ;
    coor2.longitude =  ;
    end.pt = coor2;
    //指定终点名称
    end.name = @"终点位置";
    //指定终点
    para.endPoint = end;
    //指定返回自定义scheme
    para.appScheme = @"";
    //调启百度地图客户端导航
    [BMKNavigation openBaiduMapNavigation:para];
百度地图.png

只有驾车界面支持web,也带有偏好选择功能。基本可以满足正常使用,导航SDK能正常使用之前暂时就用这个吧。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容