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库,我截个图吧:

swift 集成使用最新版百度地图_v2.10.2(一)

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的使用。

\>NSAppTransportSecurity>

<dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>

三:在info.plist 增加键 Bundle display name ,值填写项目名称。

swift 集成使用最新版百度地图_v2.10.2(一)

9.打开AppDelegate.swift 文件,继承BMKGeneralDelegate 这个代理

funcapplication(application:UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject:AnyObject]?) ->Bool{加入如下代码

//测试百度地图是否成功,debug时,建议打开,有利于调试程序;release时建议关闭

_mapManager=BMKMapManager()

//如果要关注网络及授权验证事件,请设定generalDelegate参数

letret =_mapManager?.start("此处填写你申请的秘钥", generalDelegate:self)

if(ret !=nil) {

NSLog("manager start success!");

}

ifret ==false{

NSLog("manager start failed!")

}

}

如图所示:

swift 集成使用最新版百度地图_v2.10.2(一)

到这里百度地图就集成完毕了,遇到了问题可以随时联系我 - _ -
原文链接: https://www.cnblogs.com/brance/p/5340914.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/231182

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月13日 下午2:56
下一篇 2023年2月13日 下午2:56

相关推荐