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的主要内容,如果未能解决你的问题,请参考以下文章

百度地图集成_POi搜索和正反地理编码

pyecharts绘制地图

百度地图集成

前端小技能Vue集成百度离线地图

百度地图集成--二

同时集成百度地图定位以及导航遇到的一些坑