Swift-百度地图Api2.9使用

1. 导入下载的百度地图Api的静态库

如:


注意:mapapi.bundle在BaiduMapAPI_Map.framework中,必须单独拿出来拖出项目(里边有所有用到的图片,否则无法显示)

2. 引入所需的系统库

百度地图SDK中提供了定位功能和动画效果,v2.0.0版本开始使用OpenGL渲染,因此您需要在您的Xcode工程中引入
CoreLocation.framework
QuartzCore.framework
OpenGLES.framework
SystemConfiguration.framework
CoreGraphics.framework
Security.framework
libsqlite3.0.tbd(xcode7以前为 libsqlite3.0.dylib)
CoreTelephony.framework
libstdc++.6.0.9.tbd(xcode7以前为libstdc++.6.0.9.dylib)
(注:蓝色标识的系统库为v2.9.0新增的系统库,使用v2.9.0及以上版本的地图SDK,务必增加导入这3个系统库。)
添加方式:在Xcode的Project -> Active Target ->Build Phases ->Link Binary With Libraries,添加这几个系统库即可。

3. 在项目目录下确保有一个.mm文件(名字随便,如:Baidu.mm)

1> 没有64位架构的支持(这个是2.5版本以前才会出现这个问题)
libbaidumapapi.a, missing required architecture x86_64
.a文件缺少64位的架构
解决办法:将Architectures修改位:$(ARCHS_STANDARD_32_BIT)

2> 如果在导入第三方框架时,发现提示"std::"提示错误,说明框架使用了C++
解决办法,随便把项目中的一个文件,扩展名.mm
.m     c语言&OC混编
.mm     c++语言&OC混编
.c     纯C语言
.cpp    纯C++

4. info.plist参数配置

  • xcode7改用更安全的https网络请求,所以要如下属性
<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>
  • IOS8开始要使用定位功能必须主动请求用户授权
NSLocationWhenInUseUsageDescription ,允许在前台使用时获取GPS的描述
NSLocationAlwaysUsageDescription ,允许永久使用GPS的描述
  • IOS9中对应用设置了白名单访问机制,如果要跳转到百度地图APP就需要手动设置白名单,否则无法跳转:
<key>LSApplicationQueriesSchemes</key>
<array>
    <string>baidumap</string>
</array>
  • 在使用Xcode6进行SDK开发过程中,需要添加:Bundle display name ,且其值不能为空(Xcode6新建的项目没有此配置,若没有会造成manager start failed
<key>CFBundleDisplayName</key>
<string>$(PRODUCT_NAME)</string>  // 值是代表App的名字,可以随便写,也可以使用项目名
  • 完整配置图如下:


5. 环境配置

在TARGETS->Build Settings->Other Linker Flags 中添加-ObjC

6. 在桥接文件引入头文件

#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>//只引入所需的单个头文件

7. 开始使用

在AppDelegate.swift中

var window: UIWindow?
// 添加属性
lazy var navigationController: UINavigationController = {
   return UINavigationController()
}()
lazy var mapManager: BMKMapManager? = {
    // 初始化 BMKMapManager
   return BMKMapManager()
}()

// App启动的单例方法
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
     // 如果要关注网络及授权验证事件,请设定generalDelegate参数
    let ret = mapManager?.start("在此处输入您的授权Key", generalDelegate: nil)
    if !ret! {  // 如果 ret 为 false,先在后面!强制拆包,再在前面!取反
        print("manager start failed!")
    }
    window?.addSubview(navigationController.view)
    window?.makeKeyAndVisible()
    
    return true
}

在ViewController.swift中

lazy var mapView: BMKMapView = {
   return BMKMapView(frame: UIScreen.mainScreen().bounds)
}()

override func viewDidLoad() {
    super.viewDidLoad()
    self.view = mapView;
}

override func viewWillAppear(animated: Bool) {
    mapView.viewWillAppear()
    mapView.delegate = self // 不用的时候需要重置nil,否则影响内存释放
}

override func viewWillDisappear(animated: Bool) {
    mapView.viewWillDisappear()
    mapView.delegate = nil // 重置nil
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容

  • 各位小伙伴们大家好,今天我向大家介绍一下苹果百度地图的使用方法,因为做过一些想关的APP,感觉百度地图还是挺方便的...
    Lee0528阅读 14,466评论 18 46
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,100评论 18 139
  • 一、概述 百度地图 iOS SDK是一套基于iOS 5.0及以上版本设备的应用程序接口,不仅提供展示地图的基本接口...
    DestinyFighter_阅读 2,942评论 0 11
  • 面对喜欢的人,你会变得不正常,当你正常时就会有人喜欢你 喜欢和爱似乎仅一步之遥,可是这一步有时却相隔太远
    有缘同行阅读 218评论 3 1
  • 关于老蜜蜡,许多人不肯用心去研究,也不仔细看,张嘴就烤色,闭嘴就优化的!新蜜蜡也是,盲目跟风,反倒把真正烤色的,刻...
    Jewelry安阅读 177评论 0 0