你好,歡迎來到IOS教程網

 Ios教程網 >> IOS使用技巧 >> IOS7技巧 >> Swift - 百度地圖SDK的配置和使用

Swift - 百度地圖SDK的配置和使用

編輯:IOS7技巧
下面我們來看一篇關於Swift - 百度地圖SDK的配置和使用方法與例子哦,希望這篇文章能夠幫助到各位朋友,有興趣的可以來看看。

一、申請API Key

首先我們要到百度地圖開放平台上申請個 API Key,供我們程序使用。地址:http://lbsyun.baidu.com/


二、項目配置

1,修改Info.plist
由於 iOS9 改用更安全的 https,為了能夠在 iOS9 中正常使用地圖 SDK。需要在"Info.plist"中添加如下配置:

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

2,下載iOS SDK

百度地圖 SDK 是 framework 形式,地址:點擊此處下載。
原文:Swift - 百度地圖SDK的配置和使用(附樣例)

3,根據需要導入 .framework包

其中 BaiduMapAPI_Base.framework 為基礎包,必須要導入。其他分包可按需導入。
這裡我們只導入 BaiduMapAPI_Base.framework、BaiduMapAPI_Map.framework。
原文:Swift - 百度地圖SDK的配置和使用(附樣例)

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
原文:Swift - 百度地圖SDK的配置和使用(附樣例)

5,引入mapapi.bundle資源文件
mapapi.bundle 中存儲了定位、默認大頭針標注 View 及路線關鍵點的資源圖片,還存儲了矢量地圖繪制必需的資源文件。
如果我們不需要使用內置的圖片顯示功能,則可以刪除 bundle 文件中的 image 文件夾。
也可以根據具體需求任意替換或刪除該 bundle 中 image 文件夾的圖片文件。
(1)選中工程名,在右鍵菜單中選擇 Add Files to “工程名”...


(2)選擇 BaiduMapAPI_Map.framework -> Resources -> mapapi.bundle 文件,並勾選“Copy items if needed”復選框,單擊“Add”按鈕,即可將資源文件添加到工程中。
原文:Swift - 百度地圖SDK的配置和使用(附樣例)

6,新建橋接頭文件

我們需要在這個頭文件中 import 需要的庫文件,具體內容如下。(關於橋接頭文件的配置這裡就不多說了)

#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 進行聲明和初始化。


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,並設置顯示區域以及標記點。


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()
    }
}

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved