準(zhǔn)備工作:
安裝CocoaPods使用下載第三方庫相同的方法下載SDK
方法如下:
(1)打開終端,cd 文件路徑 進(jìn)入到所創(chuàng)建的項(xiàng)目文件中
(2)輸入pod init
為該項(xiàng)目創(chuàng)建Podfile文件
(3)在Podfile文件中添加pod "AMap3DMap"
或pod "AMap2DMap"
其中3D的是3D地圖,2D的是2D地圖,選擇其一添加即可,若全選的話會(huì)發(fā)生沖突致使SDK安裝失敗
(4)輸入pod install下載SDK(若下載的SDK不是最新版可輸入pod repo update進(jìn)行更新
)下載完成后即可點(diǎn)擊.xcworkspace文件進(jìn)入項(xiàng)目編寫代碼了另外需要注冊(cè)成為高德地圖的個(gè)人開發(fā)者并前往“高德開放平臺(tái)控制臺(tái)”申請(qǐng) iOS Key。該iOS key在實(shí)際的項(xiàng)目編寫中需要用到
其中申請(qǐng)key的方法如下:
登錄或注冊(cè)
1、如果您還未注冊(cè)過,請(qǐng)點(diǎn)擊此處完成注冊(cè)。
2、如果您已經(jīng)注冊(cè)過,請(qǐng)登錄后在申請(qǐng)key,申請(qǐng)與注冊(cè)的入口如下:
創(chuàng)建應(yīng)用
進(jìn)入“控制臺(tái)—應(yīng)用管理—創(chuàng)建新應(yīng)用”,點(diǎn)此進(jìn)入。
申請(qǐng)為該應(yīng)用添加key
1、點(diǎn)擊左側(cè)“+”新增Key。
2、填寫必要字段,此時(shí)需要選擇正確的key類型。
在上圖中選擇iOS平臺(tái),選擇后還需要填寫安全碼Bundle ID: ,該安全碼的獲取如下圖:
將一切填好后就可以獲取到我們需要的key了
接下來就進(jìn)入到項(xiàng)目?jī)?nèi)部的設(shè)置了:
1.iOS9為了增強(qiáng)數(shù)據(jù)訪問安全,將所有的http請(qǐng)求都改為了https,為了能夠在iOS9中正常使用地圖SDK,需要在"Info.plist"中進(jìn)行如下配置,否則影響SDK的使用,(見下圖):
我們需要在App Transport Security Settings下創(chuàng)建Allow Aebitrary Loads,并將其Type為Boolean類型的Value設(shè)置為YES;如本身就沒有App Transport Security Settings的話則需要?jiǎng)?chuàng)建一個(gè)
2.配置高德key到AppDelegate.m文件:
#import <AMapFoundationKit/AMapFoundationKit.h> //需要引入AMapFoundationKit.h頭文件 …… (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //將下方 您的Key 部分修改為剛才所獲取到的key就行; [AMapServices sharedServices].apiKey = @"您的Key"; …… }
3.加載地圖的方法:
在ViewController.m文件相應(yīng)的方法中進(jìn)行地圖初始化,初始化的步驟:
(1) import MAMapKit.h 頭文件;
(2)構(gòu)造MAMapView對(duì)象;
(3)將MAMapView添加到Subview中。
對(duì)于3D矢量地圖,在 viewDidLoad 方法中添加代碼:
#import <MAMapKit/MAMapKit.h> -(void) viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. ///初始化地圖 MAMapView *_mapView = [[MAMapView alloc] initWithFrame:self.view.bounds]; ///把地圖添加至view [self.view addSubview:_mapView]; }
重要的點(diǎn):
我們?cè)趯?shí)現(xiàn)了以上操作之后,是仍然無法成功加載出地圖的,此時(shí)運(yùn)行會(huì)提示高德地圖SDK隱私合規(guī)相關(guān)的問題,這是由于法律法規(guī)對(duì)于APP所要求的內(nèi)容,必須要通過這個(gè)檢測(cè),否則就無法顯示地圖視圖,不過不用慌,看下面:
在構(gòu)造MAMapView(MAOfflineMap,MAOfflineMapViewController,MATraceManager等)之前必須進(jìn)行合規(guī)檢查,設(shè)置接口之前保證隱私政策合規(guī),檢查接口如下:
[MAMapView updatePrivacyShow:AMapPrivacyShowStatusDidShow privacyInfo:AMapPrivacyInfoStatusDidContain]; [MAMapView updatePrivacyAgree:AMapPrivacyAgreeStatusDidAgree];
將上述兩行接口代碼添加到加載地圖視圖的代碼之前即可成功加載地圖的視圖。
即就是把ViewController.m中的代碼寫成如下形式:
#import <MAMapKit/MAMapKit.h> -(void) viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. //添加隱私合規(guī)接口代碼 [MAMapView updatePrivacyShow:AMapPrivacyShowStatusDidShow privacyInfo:AMapPrivacyInfoStatusDidContain]; [MAMapView updatePrivacyAgree:AMapPrivacyAgreeStatusDidAgree]; ///初始化地圖 MAMapView *_mapView = [[MAMapView alloc] initWithFrame:self.view.bounds]; ///把地圖添加至view [self.view addSubview:_mapView]; }
此時(shí),我們的全部流程就結(jié)束了,實(shí)際的運(yùn)行結(jié)果如下:
可以看到地圖視圖已經(jīng)顯示在我們的手機(jī)上了。
總結(jié)
到此這篇關(guān)于iOS調(diào)用高德地圖SDK的文章就介紹到這了,更多相關(guān)iOS調(diào)用高德地圖SDK內(nèi)容請(qǐng)搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!
原文鏈接:https://blog.csdn.net/m0_52192682/article/details/121566431