问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

iOS开发,sdk是一款针对在线导航的产品这句话什么意思

发布网友 发布时间:2022-04-27 06:18

我来回答

1个回答

热心网友 时间:2022-06-27 13:15

百度地图API如何选择,以及关于百度地图的SDK的使用,可以参考我之前的一篇文章http://blog.sina.com.cn/s/blog_68661bd80101k4rx.html 在那篇的教程中已经讲解过如何申请百度密钥,这里就不再细说。
导航的功能其实较专一和简单。一般项目使用导航SDK的都是使用当前手机位置到目的地的语音导航。所以掌握这个,也就掌握了整个百度导航SDK。
百度导航:通过调用导航SDK接口,您可以轻松访问百度导航的服务和数据,构建功能丰富、交互性强的导航类应用程序。百度导航功能:1.GPS导航 2.路线全览 3.文字导航 4.HUD导航 5.语音播报 6.实时路况 7.路线规划 8.GPS巡航。从整个功能上来说,就比地图SDK多两个功能:第一,语音导航。由第三条和第五条组成。第二,加了导航界面,提前的路况查询。路线规划这些功能地图SDK已经有了,所以说白了导航SDK只是地图SDK的补充。主要由于地图SDK没有语音导航功能才开发的导航SDK。
在自己项目中使用百度导航SDK的步骤:
第一步:申请密钥。http://lbsyun.baidu.com/apiconsole/key 。在这里也回答一个朋友的问题,能否在同一个工程中同时使用导航SDK和地图SDK。答案是可以的。下面是百度官方的截图。

第二步:下载SDK。百度导航SDK的下载地址http://developer.baidu.com/map/index.php?title=ios-navsdk/sdkios-nav-download 下载的包有开发文档和SDK以及demo程序。
第三步:根据申请密钥时的bundle indentifer创建一个项目。我的项目名为csctest,因为我写的项目的签名为com.calinks.csctest。将当前最新SDK文件夹BaiNavi_iOSSDK_v2.0.4_Lib加入到项目中,如果此刻运行程序会出现错误。因为现在项目一般都是用ARC,而导航SDK中提供的TouchJSON是非ARC编译选项。所以要在Build Phases的Compile Sources中关于TouchJSON的文件的Compiler Flags添加-fno-objc-arc。

第四步:加入库的头文件。此时运行程序不会报错。接下来一般的思路就是加入库的头文件,在AppDelegate.m中加入

#import "BNCoreServices.h"。
在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions中加入
[BNCoreServices_Instance initServices: @"itIDWOfDPlQo5camfY5GeqOK"];
[BNCoreServices_Instance startServicesAsyn:nil fail: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 libNaviSDK.a(BDETTSCoreDataHelper.o)
"_OBJC_CLASS_$_NSFetchRequest", referenced from:
objc-class-ref in libNaviSDK.a(BDETTSCoreDataHelper.o)
"_OBJC_CLASS_$_NSManagedObjectContext", referenced from:
objc-class-ref in libNaviSDK.a(BDETTSCoreDataHelper.o)
"_OBJC_CLASS_$_NSPersistentStoreCoordinator", referenced from:
objc-class-ref in libNaviSDK.a(BDETTSCoreDataHelper.o)
"_OBJC_CLASS_$_NSAttributeDescription", referenced from:
objc-class-ref in libNaviSDK.a(BDETTSCoreDataHelper.o)
"_OBJC_CLASS_$_NSEntityDescription", referenced from:
objc-class-ref in libNaviSDK.a(BDETTSCoreDataHelper.o)
"_NSSQLiteStoreType", referenced from:
-[BDETTSCoreDataHelper setupPersistentStore] in libNaviSDK.a(BDETTSCoreDataHelper.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

因为导航SDK的语法关系,需要在Build Settings中, “Other Linker Flags”添加“-ObjC” 标识。再运行,程序就没有问题了。注意添加时,O和C是大写,一个字母不对就会出错。

第五步:设置info.plist。一般思路,接下来当然是加导航代码,但是还得意识到一个问题,导航需要定位,因为真正的导航是从自己当前位置为起点的。
为了对iOS8的定位能力做兼容,做了相应的修改,开发者在使用过程中注意事项如下: 需要在info.plist里添加(以下二选一,两个都添加默认使用NSLocationWhenInUseUsageDescription):
NSLocationWhenInUseUsageDescription ,允许在前台使用时获取GPS的描述
NSLocationAlwaysUsageDescription ,允许永久使用GPS的描述。

还有一点,导航要能在后台一直运行。需要加入

第六步:注意初始化失败的问题。加入导航代码时,不要在程序启动时立即直接进入导航功能,因为导航初始化需要时间,在实际情况下也不需要程序启动时立即进入导航功能,因为要输入终点。所以,我建议写一个按钮,点击再进入导航。以免提示@"引擎尚未初始化完成,请稍后再试"

第七步:导航的功能代码
在ViewController.m中加入
#import "BNCoreServices.h",#import "BNRoutePlanModel.h",#import "BNCoreServices.h"。实现<</span>BNNaviUIManagerDelegate,BNNaviRoutePlanDelegate>两个委托方法。主要代码
//发起导航
- (void)startNavi
{
//节点数组
NSMutableArray *nodesArray = [[NSMutableArray alloc] initWithCapacity:2];

//起点
BNRoutePlanNode *startNode = [[BNRoutePlanNode alloc] init];
startNode.pos = [[BNPosition alloc] init];
startNode.pos.x = 113.936392;
startNode.pos.y = 22.547058;
startNode.pos.eType = BNCoordinate_BaiMapSDK;
[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_BaiMapSDK;
[nodesArray addObject:endNode];
//发起路径规划
[BNCoreServices_RoutePlan startNaviRoutePlan:BNRoutePlanMode_Recommend naviNodes:nodesArray time:nildelegete:self userInfo:nil];
}

//算路成功回调
-(void)routePlanDidFinished:(NSDictionary *)userInfo
{
NSLog(@"算路成功");

//路径规划成功,开始导航
[BNCoreServices_UI showNaviUI: BN_NaviTypeReal delegete:self isNeedLandscape:YES];
}
//算路失败回调
- (void)routePlanDidFailedWithError:(NSError *)error andUserInfo:(NSDictionary *)userInfo
{
NSLog(@"算路失败");
if ([error code] == BNRoutePlanError_LocationFailed) {
NSLog(@"获取地理位置失败");
}
else if ([error code] == BNRoutePlanError_LocationServiceClosed)
{
NSLog(@"定位服务未开启");
}
}
//算路取消回调
-(void)routePlanDidUserCanceled:(NSDictionary*)userInfo {
NSLog(@"算路取消");
}

#pragma mark - BNNaviUIManagerDelegate

//退出导航回调
-(void)onExitNaviUI:(NSDictionary*)extraInfo
{
NSLog(@"退出导航");
}

- (IBAction)StartNavAction:(id)sender {
if (![self checkServicesInited]) return;
_naviType = BN_NaviTypeReal;
[self startNavi];
}
第八步:百度语音授权。http://app.navi.baidu.com/ttsregister/appinfo然而就在信心满满,以为可以语音导航的时候,突然弹出个提示并没有语音导航功能出来。因为还需要一个百度语音授权。填写Bundle Id和对应的密钥AK,再运行程序,就可以正常使用了。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
人字梯有什么安全隐患吗 怎样激发青春期孩子的内驱力 如何激发青春期孩子的内驱力 ...小题1:移船相近邀相见,添酒回灯重开宴。 , &amp;n... L1和L2串联 电压表并联在L1两端 当L1断路后 电压表测的为什么就成了电源... L1和L2串联,用电压表测L1两端的电压,L2不亮时,电流表为什么测的是电源电... 电路上传连两个灯泡L1与L2电压表测L1电压,当L1短路与断路时电压表情况... 对方拖着不办离婚手续该怎么办 计算机一级电子表格怎么拿分 如何配置思源黑体为latex中文字体? 思源黑体字体怎么安装 ios 自己封装的sdk引入了第三方库,怎么防止与外界的冲突 iOS开发给第三方使用的SDK需要注意些什么,求指教 如何破解ios sdk计费代码 ios sdk是什么 一匹空调大约用于几平方 1P空调的耗电量是多少?能管多大面积的房间 如何将彩色的PPT课件转换为黑白的 明日方舟招商银行怎么办 PPT中,图片由彩色转为黑白,07版。 办理明日方舟联合储蓄卡需要钱吗? PPT怎么能让单页一整页变成黑白色 微信设置优先零钱支付,那我明日方舟充值会扣微信零钱还是银行卡的钱? ppt怎么做才可以变为黑白模式,并且 明日方舟未成年人充值会发短信到绑定手机上吗? 怎么把彩色ppt转换成黑白的?里面文字什么的有好多种颜色,还有公式,特别要求转换后字是黑白的…… 请问我申请的明日方舟银行卡领卡时说的外地人需要带上开户资料是什么? ppt2010怎么把ppt变成黑白的,我指的是所有的字和公式全部变成黑色,所有... 春节有人在营业吗我申请了张明日方舟联名卡,去那开门吗? 明日方舟是信用卡吗 明日方舟是信用卡吗 如何把幻灯片保存为黑白视图 iOS开发,SDK版本和iOS版本之间的关系? ios sdk 8.1怎么安装 ios封装sdk pch怎么用 悉尼大学在世界排名是多少? ios开发当中 SDK和Xcode 之间的关系是什么 ?哪位大侠可以帮忙回答下? 悉尼大学世界排名是多少? 悉尼大学为何逐渐受到很多出国留学生的青睐? 申请澳洲,悉尼大学怎么样? 悉尼大学在世界大学排名多少强? 悉尼大学 全麦面粉做的食物对身体有哪些好处呢? 有哪些吉他弹唱的经典歌曲 全麦粉的营养价值 请问悉尼大学和墨尔本大学的会计专业哪所学校更好呀? 全麦面粉的营养价值 青罗卜丸子怎么做? 经典吉他弹唱曲目? 青萝卜丸子的做法,青萝卜丸子怎么做好吃,青萝 精白面粉比全麦粉更营养? 蒸青萝卜丸子的做法大全家常