swift 集成使用最新版百度地图_v2.10.2
Posted 来碗杂酱面
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift 集成使用最新版百度地图_v2.10.2相关的知识,希望对你有一定的参考价值。
目前在开发中使用百度地图的APP越来越多了,我在网上找的集成百度地图的例子不是很多,于是我就将我集成百度地图的过程记录了下来:
一、前提:安装CocoaPods
sudo gem install cocoapods
如果安装成功,会有一个提示
Successfully installed cocoaPods
二、使用CocoaPods导入地图SDK
在当前工程文件(.xcodeproj)所在文件夹下,打开terminal
1.创建Podfile:
touch Podfile
2.编辑Podfile内容如下:
pod ‘BaiduMapKit‘ #百度地图SDK
3.在Podfile所在的文件夹下输入命令:(这里下载根据网速而定,可能有点慢)
pod install
成功以后,会出现如下记录:
Analyzing dependencies Downloading dependencies Installing BaiduMapKit (2.10.2) Generating Pods project Integrating client project
3.这时候你以为就配置好了么?别着急,还需要手动配置.framework库,我截个图吧:
4.注: 静态库中采用Objective-C++实现,因此需要您保证您工程中至少有一个.mm后缀的源文件(您可以将任意一个.m后缀的文件改名为.mm),或者在工程属性中指定编译方式,即在Xcode的Project -> Edit Active Target -> Build Setting 中找到 Compile Sources As,并将其设置为"Objective-C++"。
5.环境配置-在TARGETS->Build Settings->Other Linker Flags 中添加-ObjC。因为我项目这里用的是pod,所以此处pod已经默认加了-ObjC
6.引入mapapi.bundle资源文件
如果使用了基础地图功能,需要添加该资源,否则地图不能正常显示mapapi.bundle中存储了定位、默认大头针标注View及路线关键点的资源图片,还存储了矢量地图绘制必需的资源文件。如果您不需要使用内置的图片显示功能,则可以删除bundle文件中的image文件夹。您也可以根据具体需求任意替换或删除该bundle中image文件夹的图片文件。
方法:选中工程名,在右键菜单中选择Add Files to “工程名”…,从BaiduMapAPI_Map.framework||Resources文件中选择mapapi.bundle文件,并勾选“Copy items if needed”复选框,单击“Add”按钮,将资源文件添加到工程中。
7.引入头文件,引入你需要加的文件。
#import <BaiduMapAPI_Base/BMKBaseComponent.h>//引入base相关所有的头文件
#import <BaiduMapAPI_Map/BMKMapComponent.h>//引入地图功能所有的头文件
#import <BaiduMapAPI_Search/BMKSearchComponent.h>//引入检索功能所有的头文件
#import <BaiduMapAPI_Cloud/BMKCloudSearchComponent.h>//引入云检索功能所有的头文件
#import <BaiduMapAPI_Location/BMKLocationComponent.h>//引入定位功能所有的头文件
#import <BaiduMapAPI_Utils/BMKUtilsComponent.h>//引入计算工具所有的头文件
#import <BaiduMapAPI_Radar/BMKRadarComponent.h>//引入周边雷达功能所有的头文件
#import < BaiduMapAPI_Map/BMKMapView.h>//只引入所需的单个头文件
8.申请秘钥,增加配置https,增加bondle display name.
一:到百度开发者平台申请秘钥--http://lbsyun.baidu.com/apiconsole/key,这里的 Bundle Identifier就是项目的Bundle Identifier,一定要填写正确。
二:注:由于ios9改用更安全的https,为了能够在iOS9中正常使用地图SDK,请在"Info.plist"中进行如下配置,否则影响SDK的使用。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
三:在info.plist 增加键 Bundle display name ,值填写项目名称。
9.打开AppDelegate.swift 文件,继承 BMKGeneralDelegate 这个代理
在
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {加入如下代码
//测试百度地图是否成功,debug时,建议打开,有利于调试程序;release时建议关闭
_mapManager=BMKMapManager()
// 如果要关注网络及授权验证事件,请设定generalDelegate参数
let ret = _mapManager?.start("此处填写你申请的秘钥", generalDelegate: self)
if (ret != nil) {
NSLog("manager start success!");
}
if ret == false {
NSLog("manager start failed!")
}
}
如图所示:
到这里百度地图就集成完毕了,遇到了问题可以随时联系我 - _ -
以上是关于swift 集成使用最新版百度地图_v2.10.2的主要内容,如果未能解决你的问题,请参考以下文章