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

技术分享

 

集成开发包

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

  1. 合并真机和模拟器的.a库文件
  2. 添加依赖的.a.hframeworkbundle等资源
  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.framework2.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];

 

 

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。