iOS百度地图SDK基本配置和使用

来源:互联网 发布:最好网络武侠小说 编辑:程序博客网 时间:2024/05/20 17:09

介绍:在iOS的开发中,有些应用需要实现与地图相关功能,这时候可以选择使用苹果自带的框架进行实现,也可以选择使用百度所提供的这个第三方SDK进行功能的实现,下面将对百度地图的SDK的基本使用进行说明:

一、下载百度地图SDK
首先,开发者需要到百度地图IOS SDK下载界面去下载百度所提供的第三方框架,下载地址为:http://developer.baidu.com/map/index.php?title=iossdk/sdkiosdev-download , 进入下载页面后,可以选择两种不同形式的静态库(在本文介绍中使用的是.framework的静态库),可以选择全部下载和自定义下载
二、申请百度地图SDK开发密钥
其次,如果要使用百度地图的SDK,那么需要到百度地图到 http://lbsyun.baidu.com/apiconsole/key 这里去申请百度地图iOS SDK开发密钥(这个密钥所生成的安全码将在程序中使用到) , 申请密钥的详细教程请看 http://developer.baidu.com/map/index.php?title=iossdk/guide/key
到这里,需要做的提前准备就弄好了,接着就要开始进行应用中的操作了
三、进行项目代码之前,需要对SDK进行几项配置

1、由于SDK中是采用ObjectC++实现的,所以需要保证项目中至少有一个.mm文件的源文件(建议将AppDelegate.m文件的后缀改为.mm,因为在后面的配置中也会对AppDelegate进行处理)

2、需要在以下路径中添加 -ObjC : PROJECT -> Build Setting -> Linking -> Other Linker Flags
路径图为:

















3、在plist文件中需要进行这样的处理:选择
NSLocationWhenInUseUsageDescription
NSLocationAlwaysUsageDescription
两项中任意一项(如果两项都写电话,那么默认是第一个),配置方法是在key的位置写上这个,然后在value的位置写上YES
4、需要在info.plist文件中加入一项(因为在xcode6版本后面plist文件少了这项),Bundle display name(表示app在桌面上显示的名字) 这个不能为空或者不写,否则会报错为,manager start failed
5、应该将下载的SDK包中的mapapi.bundle(存储了定位、默认大头针View和线路相关的资源图片) 导入到项目中,但是要注意导入方法,可以直接将项目拖到Xcode左侧的Groups&Files中去。将资源导入之后,可以对里面的图片进行一个更换,来创建属于自己的界面,但是要注意的是不要将图片的名字替换

四、配置开发环境

1、选择并导入框架
百度地图SDK提供了针对于模拟器和真机使用的两套framework,在下载的SDK包中可以看到,我们可以根据需要去选择其中一个要使用的包,针对于定位绘制轨迹后期需要使用真机来测试精度以及一些参数的项目来说,需要在模拟器和真机上都进行测试,那么就需要使用lipo命令进行融合,先给出一个例子:
lipo -create Release-iphoneos/BaiduMapAPI.framework/BaiduMapAPI Release-iphonesimulator/BaiduMapAPI.framework/BaiduMapAPI
-output Release-iphoneos/BaiduMapAPI.framework/BaiduMapAPI
使用方法:lipo -creat (BaiduMapAPI在开发包中模拟器下的位置) (BaiduMapAPI在开发包中真机下的位置) -output (BaiduMapAPI在开发包中真机下的位置)
2、引入所需要的系统库
在这个项目中我们所需要引入的系统库有6个
CoreLocation.framework
QuartzCore.framework
OpenGLES.framework
SystemConfiguration.framework

CoreGraphics.framework

Security.framework

导入库的方法是:TARGETS-> Build Phases -> Link Binary With Libraries

路径图为:

五、基本功能的实现

1、在AppDelegate.m文件中(里面的一些属性需要定义)
- (BOOL)application:(UIApplication *)applicationdidFinishLaunchingWithOptions:(NSDictionary *)launchOptions {       // 要使用百度地图,需要先初始化和启动BaiduMapManager      _mapManager = [[BMKMapManager alloc]init];   // 如果要关注网络及授权验证事件,请设定generalDelegate的参数      BOOL ret = [_mapManager start:@"之前申请的密钥里面的授权key"  generalDelegate:nil];      if (!ret) {          NSLog(@"manager start failed!");      }      return YES;  }

2、在viewController.m文件中
- (void)viewDidLoad {      [super viewDidLoad];      self.view = mapView;      }

(void)viewWillAppear:(BOOL)animated    {        [_mapView viewWillAppear];    // 在这里设置代理,代理的代理方法和视图的展示有关    _mapView.delegate = self;}    -(void)viewWillDisappear:(BOOL)animated    {        [_mapView viewWillDisappear];    // 大多数情况下,应该在这里设置代理为空,防止影响到内存的释放,但是如果是进行绘制轨迹这种要求app在后台的时候仍然执行视图刷新的功能的时候,代理就不应该被关掉      _mapView.delegate = nil; }

六、到此,基本的地图就可以展示出来了

如果需要进一步的设置地图有关的功能,可以访问苹果地图SDK官网 http://developer.baidu.com/map/index.php?title=iossdk/guide/basicmap




0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小规模税率开错了怎么办 我是代购卖家被买家投诉偷税怎么办 天猫盒子内存不够怎么办 天猫品牌申请不通过怎么办 天猫商家发货发个空包裹怎么办 无限流量怎么办没有4g 海外直邮身份证过期了怎么办 买车的人不过户怎么办 天猫精灵球泡离线怎么办 花呗被骗了2万怎么办 天猫公司变更地址发票怎么办 支付宝自助解限怎么办 支付宝16岁限额怎么办 支付宝提不了现怎么办 支付宝余额受限需要身份证怎么办 微信被骗了6000怎么办 被代运营骗了该怎么办 淘宝店铺过节放假无人打理怎么办 淘宝店太久没打理出现未开店怎么办 淘宝店关了售后怎么办 发货运单号发错了怎么办 天猫积分为零怎么办 山东聊城小型车脱审一年怎么办? 廉租房如果夫妻离婚怎么办 淘宝客服不给退货怎么办 天猫客服打字慢怎么办 京东买的kindle坏了怎么办 欧巴怎么办韩语怎么写 聚划算淘宝口令打不开怎么办 道聚城白银礼包下架怎么办 聚星输了很多钱怎么办 弹力运动裤被烟烧了个洞怎么办 生完宝宝胯宽怎么办 黑色纯棉裤子洗的发白怎么办 金盾保险柜密码忘了怎么办 装修好的房子漏水怎么办 刚装修的房子墙面开裂怎么办 刚装修的房子有味道怎么办 代销产品规格填写不完整怎么办 我的信息被泄露怎么办 进入不良网站手机发信息怎么办