前言:
前段時間,在一個項目中須要自定義地圖。 因而,咱們選擇了接入了高德地圖。
基於此次自定義地圖的實踐,總結一些使用上的一些小細節,並計劃落地一系列地圖相關的文章。
目錄以下:
iOS 高德SDK應用實踐(一)—— 簡介與初始化地圖
iOS 高德SDK應用實踐(二)—— 自定義大頭針AnnotationView
iOS 高德SDK應用實踐(三)—— 自定義氣泡CalloutViewhtml
本篇將介紹如何接入高德地圖,以及高德地圖SDK的簡單使用。ios
高德是中國領先的數字地圖內容、導航和位置服務解決方案提供商。擁有導航電子地圖甲級測繪資質、測繪航空攝影甲級資質和互聯網地圖服務甲級測繪資質"三甲"資質,其優質的電子地圖數據庫成爲公司的核心競爭力。於2014年2月,被阿里巴巴以11億元全資收購。(內容源於360搜索)git
第一步:去高德開放平臺,申請高德APIKey
。(傳送門:連接)github
第二步:使用CocoaPods自動部署,將高德SDK
導入項目。數據庫
關於CocoaPods的使用請查看:CocoaPods —— 簡介、安裝及基本使用swift
修改podfile,以下:api
platform :ios, '10.0'
target '你的項目名' do
use_frameworks!
pod 'AMap3DMap' #3D地圖SDK
pod 'AMapSearch' #地圖SDK搜索功能
pod 'AMapLocation' #定位SDK
end
複製代碼
而後,pod install
一下。bash
#import <MAMapKit/MAMapKit.h>
#import <AMapFoundationKit/AMapFoundationKit.h>
複製代碼
AppDelegate
中,填寫申請到的APIKey
。func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
//...
AMapServices.shared().apiKey = "申請好的APIKey"
//...
return true
}
複製代碼
Controller
中實例化地圖對象。override func viewDidLoad() {
super.viewDidLoad()
let mapView = MAMapView(frame: self.view.bounds)
mapView.delegate = self
self.view.addSubview(mapView)
}
複製代碼
這時候,已經能展現地圖了,是否是很簡單?微信
經常使用可配置參數以下:
參數 | 類型 | 說明 |
---|---|---|
logoCenter | CGPoint | 可設置Logo的位置。必須在mapView.bounds以內,不然會被忽略。 |
showsCompass | Bool | 是否顯示指南針。 |
compassOrigin | CGPoint | 設置指南針的位置。 |
showsScale | Bool | 是否顯示比例值。 |
scaleOrigin | CGPoint | 設置比例尺的位置。 |
zoomEnabled | Bool | 是否開啓縮放手勢,默認true。 |
scrollEnabled | Bool | 是否開啓滑動手勢,默認true。 |
rotateEnabled | Bool | 是否開啓旋轉手勢,默認true。 |
rotateCameraEnabled | Bool | 是否開啓傾斜旋轉手勢,默認true。用戶能夠在地圖上放置兩個手指,移動它們一塊兒向下或向上去增長或減少傾斜角。 |
setZoomLevel | CGFloat | 改變地圖縮放級別。範圍從3級到19級,共17級。級別越高,展現的內容越細,例如街道等等。 |
setCenter | CLLocationCoordinate2D | 改變地圖中心的位置。傳遞具體的經緯度。 |
注意:若是用到定位,須要開啓定位權限。另外,模擬器沒法模擬定位功能。
func initMapView() {
AMapServices.shared()?.enableHTTPS = true
mapView = MAMapView(frame: self.view.bounds)
mapView.showsUserLocation = true
mapView.isRotateEnabled = false // 禁止旋轉手勢
mapView.userTrackingMode = .followWithHeading // 打開定位方向
mapView.isRotateCameraEnabled = false // 禁止傾斜手勢
mapView.showsCompass = false // 禁止顯示指南針
mapView.delegate = self
mapView.setZoomLevel(13.0, animated: true) // 默認縮放等級爲13
mapView.pausesLocationUpdatesAutomatically = false
self.view.addSubview(mapView)
}
複製代碼
這樣,地圖就簡單配置好了,顯示以下圖:
最後,更多詳細信息,請參考:高德地圖官方文檔
小編微信:可加並拉入《QiShare技術交流羣》。
關注咱們的途徑有:
QiShare(簡書)
QiShare(掘金)
QiShare(知乎)
QiShare(GitHub)
QiShare(CocoaChina)
QiShare(StackOverflow)
QiShare(微信公衆號)
推薦文章:
Swift 5.1 (2) - 運算符
Swift 5.1(1) - 基礎
iOS UI狀態保存和恢復(三)
iOS UI狀態保存和恢復(二)
iOS UI狀態保存和恢復(一)
iOS 中精肯定時的經常使用方法
Sign In With Apple(一)
奇舞週刊