之前做过一次关于基站定位�并带有导航功能,直接使用的百度地图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能正常使用之前暂时就用这个吧。