• 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!")

            }

    }

    如图所示:

    到这里百度地图就集成完毕了,遇到了问题可以随时联系我 - _ -

  • 相关阅读:
    Sql Server2005 TransactSQL 新兵器学习总结之数据类型
    Sql Server2005 TransactSQL 新兵器学习总结之TOP 运算符
    Sql Server2005 TransactSQL 新兵器学习总结之TRY…CATCH
    SQL Server函数大全(三)Union与Union All的区别
    Sql Server2005 TransactSQL 新兵器学习总结之APPLY 运算符
    Sql Server2005 TransactSQL 新兵器学习总结之公用表表达式(CTE)
    SDUT 飞行棋 (概率DP & 期望)
    HDU 4276 The Ghost Blows Light (树形DP)
    POJ 2096 Collecting Bugs (概率DP & 期望 )
    HDU 4118 Holiday's Accommodation (树形DP 哎,头脑不清晰,没看懂。。。。)
  • 原文地址:https://www.cnblogs.com/brance/p/5340914.html
Copyright © 2020-2023  润新知