概述
一、申请API Key
首先我们要到百度地图开放平台上申请个
API Key,供我们程序使用。地址:
http://lbsyun.baidu.com/
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 形式,地址: 点击此处下载 。
其中 BaiduMapAPI_Base.framework 为基础包,必须要导入。其他分包可按需导入。
这里我们只导入
BaiduMapAPI_Base.framework、
BaiduMapAPI_Map.framework。
4,添加相关依赖库
由于百度地图
SDK 中提供了定位功能和动画效果,使用的是
OpenGL 渲染。所以我们要在
Project ->
Build Phases ->
Link Binary With Libraries,添加如下几个系统库:
CoreLocation.framework、
QuartzCore.framework、
OpenGLES.framework、
SystemConfiguration.framework、
CoreGraphics.framework、
Security.framework、
libsqlite3.0.tbd、
CoreTelephony.framework、
libstdc++.6.0.9.tbd
5,引入mapapi.bundle资源文件
mapapi.bundle 中存储了定位、默认大头针标注
View 及路线关键点的资源图片,还存储了矢量地图绘制必需的资源文件。
如果我们不需要使用内置的图片显示功能,则可以删除 bundle 文件中的 image 文件夹。
也可以根据具体需求任意替换或删除该 bundle 中 image 文件夹的图片文件。
(1)选中工程名,在右键菜单中选择
Add Files to “工程名”...
如果我们不需要使用内置的图片显示功能,则可以删除 bundle 文件中的 image 文件夹。
也可以根据具体需求任意替换或删除该 bundle 中 image 文件夹的图片文件。
(2)选择
BaiduMapAPI_Map.framework ->
Resources ->
mapapi.bundle 文件,并勾选“
Copy items if needed”复选框,单击“
Add”按钮,即可将资源文件添加到工程中。
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,同时在地图上还添加了一个标注(自定义坐标)。
四、样例代码
1,AppDelegate.swift
在这里使用我们之前申请的授权 Key,来对 BMKMapManager 进行声明和初始化。
2,ViewController.swift
在这里我们创建添加百度地图 View,并设置显示区域以及标记点。
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()
}
}
|
最后
以上就是平常书包为你收集整理的Swift - 百度地图SDK的配置和使用(附样例)的全部内容,希望文章能够帮你解决Swift - 百度地图SDK的配置和使用(附样例)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复