由于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个文件夹

集成开发包

接下来新建第一个百度地图应用,步骤如下

  1. 合并真机和模拟器的.a库文件
  2. 添加依赖的.a、.h、framework、bundle等资源
  3. 新建.mm文件
  4. 修改软件唯一标识
  5. 导入主头文件
  6. 开启地图引擎
  7. 地图展示

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.hframeworkbundle等资源

将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];

注意事项:遇见什么问题一定要查文档,按照文档一步步来,文档说的十分详细,如果地图显示不出来,把模拟器重置一下就行了

 
 

最新文章

  1. Moon.Orm 5.0(MQL版)使用指南及代码生成器新版发布
  2. iOS开发UI篇—Quartz2D使用(图形上下文栈)
  3. l类型转换错误ClassCastException
  4. LoadRunner ---检查点
  5. UC编程之网络通信(TCP/UDP)
  6. Win7设置承载网络 分类: 网络 2014-10-30 09:08 105人阅读 评论(0) 收藏
  7. 第一个ios程序
  8. DCL双检查锁机制实现的线程安全的单例模式
  9. goahead 移植
  10. incomplete type is not allowed
  11. C#WinForm中复制、粘贴文本到剪贴板
  12. C++数组概述
  13. 6、Libgdx文件处理
  14. PHP7 网络编程(五)进程间通信【待】
  15. CentOS7+ anaconda3 + Python-3.6 + tensorflow-cpu-1.5安装和配置
  16. 对称矩阵与压缩存储算法(java实现)
  17. hdu 2519 新生晚会 (求排列组合时容易溢出)
  18. python-压缩解压
  19. 1090 Highest Price in Supply Chain (25 分)(树的遍历)
  20. LeetCode:汇总区间【228】

热门文章

  1. a==null和a.equals("null")的区别
  2. 自动化运维工具之ansible(转)
  3. 深入浅出Symfony2 - 如何提高网站响应速度 [转]
  4. 【Java】XML解析之SAX
  5. 表A的数据减去表B ,最终得到表C
  6. C# 根据身份证号码获取简易信息
  7. 【洛谷P3398】仓鼠找sugar
  8. MVC之校验
  9. python基础语法(1)
  10. 从nib文件里加载collectionViewCell