本篇將介紹如何接入高德地圖,以及高德地圖SDK的簡單使用。
一、高德地圖簡介
高德是中國領先的數(shù)字地圖內(nèi)容、導航和位置服務解決方案提供商。擁有導航電子地圖甲級測繪資質(zhì)、測繪航空攝影甲級資質(zhì)和互聯(lián)網(wǎng)地圖服務甲級測繪資質(zhì)"三甲"資質(zhì),其優(yōu)質(zhì)的電子地圖數(shù)據(jù)庫成為公司的核心競爭力。于2014年2月,被阿里巴巴以11億元全資收購。
二、接入高德地圖
- 第一步:去高德開放平臺,申請高德API
- 第二步:使用CocoaPods自動部署,將高德
SDK導入項目。
三、CocoaPods的安裝
幾年來mac系統(tǒng)更新?lián)Q代,CocoaPod的安裝教程也層出不窮,下面是自閉摸索來的新教程
- 首先我們要安裝好Ruby環(huán)境
我們需要安裝homebrew來安裝Ruby(Homebrew 能在Mac中方便的安裝軟件或者卸載軟件 。詳細可以看 Homebrew — macOS 缺失的軟件包管理器介紹)
ruby -e "$(curl -fsSL
在終端輸入來安裝homebrew,并在中途輸入mac密碼
brew -v
輸入以檢測是否安裝成功(效果大概如下)

然后我們在終端輸入
brew install ruby
來安裝Ruby(可以用ruby -v是否檢測一下安裝成功)
我們可以輸入gem sources -l來康康默認的鏡像元
- 第二步:使用ruby-china的Ruby鏡像源。
Ruby的默認源使用的是cocoapods.org,國內(nèi)訪問這個網(wǎng)址有時候會有問題(404),現(xiàn)在的解決方案是使用使用ruby-china的Ruby鏡像源
先用命令:$ gem sources --remove https://rubygems.org/。
再用命令:$ gem sources -a https://gems.ruby-china.com/。
為了驗證Ruby鏡像源是ruby-china,可使用命令:$ gem sources -l。
- 第三步:安裝cocoaPods:
使用命令:sudo gem install cocoapods
過程大概如下

CocoaPod的安裝就完成了
然后我們需要繼續(xù)在終端輸入git clone https://git.coding.net/CocoaPods/Specs.git~/.cocoapods/repos/master 把第三方庫導入( 和從前的方法不一樣,見鏈接)
- 檢測 是否安裝成功
pod search AFNetworking
pod search AFNetworking
Creating search index for spec repo 'master'.. Done!
四、CocoaPods的基本使用:
步驟如下:
1. 先通過terminal(終端)找到項目目錄,并新建Podfile。
使用命令:pod init。
2. 打開Podfile文件。
使用命令:open Podfile。
3. 搜索需要導入的框架。
使用命令:pod search 框架名。
4. 把所要導入的框架信息寫入Podfile文件。
platform:ios,'10.0'
target :你的項目名字 do
pod'AFNetworking','~>3.2.1'
pod'SDWebImage'
...
end
- 這次要導入的框架信息
platform :ios, '10.0'
target '你的項目名' do
use_frameworks!
pod 'AMap3DMap' #3D地圖SDK
pod 'AMapSearch' #地圖SDK搜索功能
pod 'AMapLocation' #定位SDK
end
- 在終端
pod install一下
三、高德地圖簡單使用
- 首先,導入高德地圖頭文件。
注意:Swift項目導入頭文件需要用到橋接頭文件(Objective-C Bridging Header)。不會橋接頭文件請參考鏈接
#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)
}
Awesome!運行程序已經(jīng)能展示地圖了
效果:

附錄:
常用可配置參數(shù)如下:
| 參數(shù) | 類型 | 說明 |
|---|---|---|
| logoCenter | CGPoint | 可設置Logo的位置。必須在mapView.bounds之內(nèi),否則會被忽略。 |
| 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級。級別越高,展示的內(nèi)容越細,例如街道等等。 |
| setCenter | CLLocationCoordinate2D | 改變地圖中心的位置。傳遞具體的經(jīng)緯度。 |