Swift - 百度地图SDK的配置和使用(附样例)

一、申请API Key
首先我们要到百度地图开放平台上申请个  API Key,供我们程序使用。地址: http://lbsyun.baidu.com/
原文:Swift - 百度地图SDK的配置和使用(附样例)


二、项目配置
1,修改Info.plist
由于  iOS9 改用更安全的  https,为了能够在  iOS9 中正常使用地图  SDK。需要在" Info.plist"中添加如下配置:
1
2
3
4
5
< key >NSAppTransportSecurity</ key >
< dict >
     < key >NSAllowsArbitraryLoads</ key >
     < true />
</ dict >

2,下载iOS SDK
百度地图  SDK  是  framework  形式,地址: 点击此处下载
原文:Swift - 百度地图SDK的配置和使用(附样例)

3,根据需要导入 .framework包
其中  BaiduMapAPI_Base.framework 为基础包,必须要导入。其他分包可按需导入。
这里我们只导入  BaiduMapAPI_Base.frameworkBaiduMapAPI_Map.framework
原文:Swift - 百度地图SDK的配置和使用(附样例)

4,添加相关依赖库
由于百度地图 SDK 中提供了定位功能和动画效果,使用的是  OpenGL 渲染。所以我们要在  Project ->  Build Phases ->  Link Binary With Libraries,添加如下几个系统库:
CoreLocation.frameworkQuartzCore.frameworkOpenGLES.frameworkSystemConfiguration.frameworkCoreGraphics.frameworkSecurity.frameworklibsqlite3.0.tbdCoreTelephony.frameworklibstdc++.6.0.9.tbd
原文:Swift - 百度地图SDK的配置和使用(附样例)

5,引入mapapi.bundle资源文件
mapapi.bundle 中存储了定位、默认大头针标注  View 及路线关键点的资源图片,还存储了矢量地图绘制必需的资源文件。
如果我们不需要使用内置的图片显示功能,则可以删除  bundle 文件中的  image 文件夹。
也可以根据具体需求任意替换或删除该  bundle 中  image 文件夹的图片文件。
(1)选中工程名,在右键菜单中选择  Add Files to “工程名”...
原文:Swift - 百度地图SDK的配置和使用(附样例)

(2)选择  BaiduMapAPI_Map.framework ->  Resources ->  mapapi.bundle 文件,并勾选“ Copy items if needed”复选框,单击“ Add”按钮,即可将资源文件添加到工程中。
原文:Swift - 百度地图SDK的配置和使用(附样例)

6,新建桥接头文件
我们需要在这个头文件中  import 需要的库文件,具体内容如下。(关于桥接头文件的配置这里就不多说了)
1
2
3
4
5
6
7
8
9
# import  < BaiduMapAPI_Base / BMKBaseComponent .h>  //引入base相关所有的头文件
# import  < BaiduMapAPI_Map / BMKMapComponent .h>  //引入地图功能所有的头文件
# import  < BaiduMapAPI_Map / BMKMapView .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> //引入周边雷达功能所有的头文件

三、样例效果图
1,当程序启动后自动显示一个全屏的百度地图。地图中心点坐标设为上海东方明珠塔。
2,同时在地图上还添加了一个标注(自定义坐标)。
原文:Swift - 百度地图SDK的配置和使用(附样例)
  

四、样例代码 
1,AppDelegate.swift
在这里使用我们之前申请的授权  Key,来对  BMKMapManager 进行声明和初始化。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import  UIKit
 
@UIApplicationMain
class  AppDelegate UIResponder UIApplicationDelegate BMKGeneralDelegate  {
 
     var  window:  UIWindow ?
     
     var  _mapManager:  BMKMapManager ?
 
     func  application(application:  UIApplication ,
         didFinishLaunchingWithOptions launchOptions: [ NSObject AnyObject ]?) ->  Bool  {
         
         _mapManager =  BMKMapManager ()
         // 如果要关注网络及授权验证事件,请设定generalDelegate参数
         let  ret = _mapManager?.start( "mRYTrHzAZUlT5Aojf5tMSxxxxxxxxxxx" ,
                                      generalDelegate:  self )
         if  ret ==  false  {
             NSLog ( "manager start failed!" )
         }
         return  true
     }
     //...............

2,ViewController.swift

在这里我们创建添加百度地图  View,并设置显示区域以及标记点。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import  UIKit
 
class  ViewController UIViewController  {
 
     //百度地图View
     var  _mapView:  BMKMapView ?
     
     override  func  viewDidLoad() {
         super .viewDidLoad()
         //添加百度地图,并全屏显示
         _mapView =  BMKMapView (frame:  CGRect (x: 0, y: 0,
             width:  self .view.frame.width,
             height:  self .view.frame.height))
         self .view.addSubview(_mapView!)
     }
     
     override  func  viewDidAppear(animated:  Bool ) {
         //地图中心点坐标
         let  center =  CLLocationCoordinate2D (latitude: 31.245087, longitude: 121.506656)
         //设置地图的显示范围(越小越精确)
         let  span =  BMKCoordinateSpan (latitudeDelta: 0.05, longitudeDelta: 0.05)
         //设置地图最终显示区域
         let  region =  BMKCoordinateRegion (center: center, span: span)
         _mapView?.region = region
         
         // 添加一个标记点(PointAnnotation)
         let  annotation =   BMKPointAnnotation ()
         var  coor =  CLLocationCoordinate2D ()
         coor.latitude = 31.254087
         coor.longitude = 121.512656
         annotation.coordinate = coor
         annotation.title =  "这里有只野生皮卡丘"
         _mapView!.addAnnotation(annotation)
     }
 
     override  func  didReceiveMemoryWarning() {
         super .didReceiveMemoryWarning()
     }
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值