iOS开发---集成百度地图
由于iOS MapKit框架很多情况并不能满足我们的需求,我们可以选择集成百度地图,那该如何操作呢?
申请Key
登录百度API管理中心申请Key
http://lbsyun.baidu.com/apiconsole/key
创建一个应用
箭头所指就是我们所要用到的Key
下载SDK
http://developer.baidu.com/map/static/doc/output_ios/BaiduMap_IOSSDK_v2.6.0_All.zip
开发指南
如何使用开发包可以参考开发指南
http://developer.baidu.com/map/index.php?title=iossdk
开发包结构
解压开发包后,有3个文件夹
集成开发包
接下来新建第一个百度地图应用,步骤如下
- 合并真机和模拟器的.a库文件
- 添加依赖的.a、.h、framework、bundle等资源
- 新建.mm文件
- 修改软件唯一标识
- 导入主头文件
- 开启地图引擎
- 地图展示
1.合并真机和模拟器的.a库文件
百度地图并未开源,只提供了静态库文件libbaidumapapi.a,有真机和模拟器版,分别放在下面两个文件夹中:
- BaiduMap_iOSSDK_v2.6.0_Lib/libs/Release-iphoneos
- BaiduMap_iOSSDK_v2.6.0_Lib/libs/Release-iphonesimulator
为了避免每次在真机和模拟器编译时都重新添加.a文件,应该将两个.a文件合并为一个,在终端上输入一下指令:
cd /这里是百度地图SDK根路径/BaiduMap_iOSSDK_v2.1.0_Lib/libs
lipo -create Release-iphoneos/libbaidumapapi.a Release-iphonesimulator/libbaidumapapi.a -output libbaidumapapi.a
2.添加依赖的.a、.h、framework、bundle等资源
将BaiduMap_iOSSDK_v2.1.0_Lib下面的inc文件夹、mapapi.bundle添加到项目中
添加合并后的libbaidumapapi.a库文件到项目中
添加依赖的框架
CoreLocation.framework
QuartzCore.framework
OpenGLES.framework
SystemConfiguration.framework
CoreGraphics.framework
Security.framework(2.1.0开始需要)
最终项目里面多出的东西是:
3.新建.mm文件
静态库中采用ObjectC++实现,因此需要您保证您工程中至少有一个.mm后缀的源文件(您可以将任意一个.m后缀的文件改名为.mm)
4.修改软件唯一标识
修改软件唯一标识为当初申请key时的安全码
5.导入主头文件
使用地图前需要导入SDK的主头文件
#import "BMapKit.h"
6.开启地图引擎
1 _mapMgr = [[BMKMapManager alloc] init]; 2 3 int ret =[_mapMgr start:@"0F0dd93edfd75399dc65e299305b8490" generalDelegate:nil]; 4 5 if (ret) { 6 7 MyLog(@"地图引擎开启成功!"); 8 9 }
start后面传递的是申请的key
7.地图展示
添加展示地图的BMKMapView
1 _mapView = [[BMKMapView alloc] initWithFrame:[UIScreen mainScreen].applicationFrame]; 2 3 [self.view addSubview:_mapView];
注意事项:遇见什么问题一定要查文档,按照文档一步步来,文档说的十分详细,如果地图显示不出来,把模拟器重置一下就行了
最新文章
- Moon.Orm 5.0(MQL版)使用指南及代码生成器新版发布
- iOS开发UI篇—Quartz2D使用(图形上下文栈)
- l类型转换错误ClassCastException
- LoadRunner ---检查点
- UC编程之网络通信(TCP/UDP)
- Win7设置承载网络 分类: 网络 2014-10-30 09:08 105人阅读 评论(0) 收藏
- 第一个ios程序
- DCL双检查锁机制实现的线程安全的单例模式
- goahead 移植
- incomplete type is not allowed
- C#WinForm中复制、粘贴文本到剪贴板
- C++数组概述
- 6、Libgdx文件处理
- PHP7 网络编程(五)进程间通信【待】
- CentOS7+ anaconda3 + Python-3.6 + tensorflow-cpu-1.5安装和配置
- 对称矩阵与压缩存储算法(java实现)
- hdu 2519 新生晚会 (求排列组合时容易溢出)
- python-压缩解压
- 1090 Highest Price in Supply Chain (25 分)(树的遍历)
- LeetCode:汇总区间【228】