iOS开发百度导航SDK的使用入门
第四步:加入库的头文件。此时运行程序不会报错。接下来一般的思路就是加入库的头文件,在AppDelegate.m中加入
[BNCoreServices_InstanceinitServices:@"itIDWOfDPlQo5camfY5GeqOK"];
[BNCoreServices_InstancestartServicesAsyn:nilfail:nil];
此时运行,会有一百多个错误。因为需要加入导航SDK的一些依赖库。必须加入CoreTelephony.framework,libstdc++.6.0.9.tbd,
AVFoundation.framework,CoreMotion.framework,ImageIO.framework,AudioToolbox.framework,SystemConfiguration.framework。
再运行发现还是有错,因为语法错误。
_OBJC_CLASS_$_NSManagedObjectModel", referenced from:
objc-class-ref in libbaiduNaviSDK.a(BDETTSCoreDataHelper.o)
"_OBJC_CLASS_$_NSFetchRequest", referencedfrom:
objc-class-ref in libbaiduNaviSDK.a(BDETTSCoreDataHelper.o)
"_OBJC_CLASS_$_NSManagedObjectContext",referenced from:
objc-class-ref in libbaiduNaviSDK.a(BDETTSCoreDataHelper.o)
"_OBJC_CLASS_$_NSPersistentStoreCoordinator",referenced from:
objc-class-ref in libbaiduNaviSDK.a(BDETTSCoreDataHelper.o)
"_OBJC_CLASS_$_NSAttributeDescription",referenced from:
objc-class-ref in libbaiduNaviSDK.a(BDETTSCoreDataHelper.o)
"_OBJC_CLASS_$_NSEntityDescription", referencedfrom:
objc-class-ref in libbaiduNaviSDK.a(BDETTSCoreDataHelper.o)
"_NSSQLiteStoreType", referenced from:
-[BDETTSCoreDataHelper setupPersistentStore] inlibbaiduNaviSDK.a(BDETTSCoreDataHelper.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to seeinvocation)
因为导航SDK的语法关系,需要在BuildSettings中, “Other Linker Flags”添加“-ObjC”标识。再运行,程序就没有问题了。注意添加时,O和C是大写,一个字母不对就会出错。
第五步:设置info.plist。一般思路,接下来当然是加导航代码,但是还得意识到一个问题,导航需要定位,因为真正的导航是从自己当前位置为起点的。
为了对iOS8的定位能力做兼容,做了相应的修改,开发者在使用过程中注意事项如下:需要在info.plist里添加(以下二选一,两个都添加默认使用NSLocationWhenInUseUsageDescription):
NSLocationWhenInUseUsageDescription,允许在前台使用时获取GPS的描述
NSLocationAlwaysUsageDescription,允许永久使用GPS的描述。
还有一点,导航要能在后台一直运行。需要加入
如果仍有以下问题:,
请依照下图解决::
//发起导航
- (void)startNavi
{
//节点数组
NSMutableArray*nodesArray = [[NSMutableArrayalloc] initWithCapacity:2];
//起点
BNRoutePlanNode *startNode= [[BNRoutePlanNode alloc]init];
startNode.pos= [[BNPositionalloc]init];
startNode.pos.x=113.936392;
startNode.pos.y=22.547058;
startNode.pos.eType=BNCoordinate_BaiduMapSDK;
[nodesArrayaddObject:startNode];
//终点
BNRoutePlanNode *endNode= [[BNRoutePlanNode alloc]init];
endNode.pos= [[BNPositionalloc]init];
endNode.pos.x=114.077075;
endNode.pos.y=22.543634;
endNode.pos.eType=BNCoordinate_BaiduMapSDK;
[nodesArrayaddObject:endNode];
//发起路径规划
[BNCoreServices_RoutePlanstartNaviRoutePlan:BNRoutePlanMode_RecommendnaviNodes:nodesArraytime:nildelegete:selfuserInfo:nil];
}
//算路成功回调
-(void)routePlanDidFinished:(NSDictionary*)userInfo
{
NSLog(@"算路成功");
//路径规划成功,开始导航
[BNCoreServices_UIshowNaviUI:BN_NaviTypeReal delegete:selfisNeedLandscape:YES];
}
//算路失败回调
- (void)routePlanDidFailedWithError:(NSError*)error andUserInfo:(NSDictionary*)userInfo
{
NSLog(@"算路失败");
if([errorcode]== BNRoutePlanError_LocationFailed){
NSLog(@"获取地理位置失败");
}
elseif([errorcode]== BNRoutePlanError_LocationServiceClosed)
{
NSLog(@"定位服务未开启");
}
}
//算路取消回调
-(void)routePlanDidUserCanceled:(NSDictionary*)userInfo{
NSLog(@"算路取消");
}
#pragma mark - BNNaviUIManagerDelegate
//退出导航回调
-(void)onExitNaviUI:(NSDictionary*)extraInfo
{
NSLog(@"退出导航");
}
- (IBAction)StartNavAction:(id)sender{
if(![selfcheckServicesInited])return;
_naviType =BN_NaviTypeReal;
[selfstartNavi];
}
如何注册百度地图的语音导航授权?通过下图就可以知道了
iOS开发百度导航SDK的使用入门相关推荐
- iOS之百度导航SDK的坐标转换
1 百度导航 iOS SDK的坐标转换代码示例,有需要的朋友可以参考下. 2 3 4 5 //导航坐标--------------> 地图坐标 6 7 8 //假设从导航sdk取到了一个点坐标是 ...
- IOS开发百度地图API入门到精通-用点生成路线,导航,气泡响应
(转)IOS开发百度地图API入门到精通-用点生成路线,导航,气泡响应 IOS百度地图API开发自定义气泡,点击气泡自动生成路线,以及拖拽 IOS百度地图开发POISearch搜索附近停车场,附近加油 ...
- IOS开发百度地图API-用点生成路线,导航,气泡响应
原地址:http://blog.sina.com.cn/s/blog_68661bd80101k4rx.html IOS百度地图API开发自定义气泡,点击气泡自动生成路线,以及拖拽 IOS百度地图开发 ...
- 转:IOS开发百度地图API-用点生成路线,导航,气泡响应
IOS百度地图API开发自定义气泡,点击气泡自动生成路线,以及拖拽 IOS百度地图开发POISearch搜索附近停车场,附近加油站 IOS百度地图视角跳到用户当前位置 IOS百度地图开发实时路况 IO ...
- ios 开发百度地图的使用
IOS开发百度地图API-用点生成路线,导航,气泡响应 IOS百度地图API开发自定义气泡,点击气泡自动生成路线,以及拖拽 IOS百度地图开发POISearch搜索附近停车场,附近加油站 IOS百度地 ...
- IOS开发百度地图API
IOS百度地图API开发自定义气泡,点击气泡自动生成路线,以及拖拽 IOS百度地图开发POISearch搜索附近停车场,附近加油站 IOS百度地图视角跳到用户当前位置 IOS百度地图开发实时路况 IO ...
- Android 使用百度导航SDK 2,并发编程挑战
效果: 使用百度导航SDK,首先需要获取的信息有: 1.起始位置的经纬度,地名 2.终点的经纬度,地名 3.起始点经纬度所使用的坐标系类型(CoordinateType ) 参数如下: private ...
- IOS开发基础之OC的Block入门_Day09-Block
IOS开发基础之OC的Block入门_Day09-Block block是oc的重要的基础知识,重点之重.跟协议一样重要,是进行函数回调重要手段.在后续的UI学习具有举足轻重的地位.学会基础的bloc ...
- 华为百度导航Sdk黑屏
某些华为机型在使用百度导航sdk时黑屏如下图,解决办法,把targetSdkVersion 设置成21就行了 targetSdkVersion 21
- iOS开发实时监控SDK的设置
iOS开发实时监控SDK的设置 *本文中涉及的实时监控为"维迈开放平台" 相关API,硬件设备为"金盛安防"监控摄像头(https://open.xmeye.n ...
最新文章
- Linux下多网卡MAC配置问题
- Java集合:List转数组互转
- portainer容器可视化管理部署简要笔记
- python 3d渲染_python老司机带你玩玩炫酷的3D渲染,酷毙了!
- 潜伏者与谍报密码(洛谷P1071题题解,Java语言描述)
- 梦聆轻量化音乐播放器源码
- 《上海堡垒》改编电影发布 QQ阅读披露作者江南心声
- 自学了三个月的软件测试,从小白到自动化测试工程师,我是如何从零拿到大厂offer的
- myeclipse 内存不够用报错PermGen space 和 An internal error has occurred.
- ajax无刷新提交表,Ajax无刷新提交表单和显示
- 后台处理客户端控件上传的文件(input type=file)
- CI/CD:DevOps背后的推动力
- 二进制空间权重矩阵_Stata_ 空间权重矩阵的构建
- VB6-Mini_20160110(VB6精简版下载)
- 移动增值短信平台实施计划方案(珠海报业短信)
- Java之String系列--intern方法的作用及原理
- anaconda安装多环境
- U3D Animator 组件控制动画的播放暂停,动态添加帧事件
- 解析几何 曲线与二次曲面 直纹面(2.4)
- bzoj1645 / P2061 [USACO07OPEN]城市的地平线City Horizon(扫描线)