iOS調(diào)用高德地圖SDK的完整步驟
準(zhǔn)備工作:
安裝CocoaPods使用下載第三方庫相同的方法下載SDK
方法如下:
(1)打開終端,cd 文件路徑 進入到所創(chuàng)建的項目文件中
(2)輸入pod init
為該項目創(chuàng)建Podfile文件
(3)在Podfile文件中添加pod 'AMap3DMap'
或pod 'AMap2DMap'
其中3D的是3D地圖,2D的是2D地圖,選擇其一添加即可,若全選的話會發(fā)生沖突致使SDK安裝失敗
(4)輸入pod install下載SDK(若下載的SDK不是最新版可輸入pod repo update進行更新
)下載完成后即可點擊.xcworkspace文件進入項目編寫代碼了另外需要注冊成為高德地圖的個人開發(fā)者并前往“高德開放平臺控制臺”申請 iOS Key。該iOS key在實際的項目編寫中需要用到
其中申請key的方法如下:
登錄或注冊
1、如果您還未注冊過,請點擊此處完成注冊。
2、如果您已經(jīng)注冊過,請登錄后在申請key,申請與注冊的入口如下:
創(chuàng)建應(yīng)用
進入“控制臺—應(yīng)用管理—創(chuàng)建新應(yīng)用”,點此進入。
申請為該應(yīng)用添加key
1、點擊左側(cè)“+”新增Key。
2、填寫必要字段,此時需要選擇正確的key類型。
在上圖中選擇iOS平臺,選擇后還需要填寫安全碼Bundle ID: ,該安全碼的獲取如下圖:
將一切填好后就可以獲取到我們需要的key了
接下來就進入到項目內(nèi)部的設(shè)置了:
1.iOS9為了增強數(shù)據(jù)訪問安全,將所有的http請求都改為了https,為了能夠在iOS9中正常使用地圖SDK,需要在"Info.plist"中進行如下配置,否則影響SDK的使用,(見下圖):
我們需要在App Transport Security Settings下創(chuàng)建Allow Aebitrary Loads,并將其Type為Boolean類型的Value設(shè)置為YES;如本身就沒有App Transport Security Settings的話則需要創(chuàng)建一個
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)的方法中進行地圖初始化,初始化的步驟:
(1) import MAMapKit.h 頭文件;
(2)構(gòu)造MAMapView對象;
(3)將MAMapView添加到Subview中。
對于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]; }
重要的點:
我們在實現(xiàn)了以上操作之后,是仍然無法成功加載出地圖的,此時運行會提示高德地圖SDK隱私合規(guī)相關(guān)的問題,這是由于法律法規(guī)對于APP所要求的內(nèi)容,必須要通過這個檢測,否則就無法顯示地圖視圖,不過不用慌,看下面:
在構(gòu)造MAMapView(MAOfflineMap,MAOfflineMapViewController,MATraceManager等)之前必須進行合規(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]; }
此時,我們的全部流程就結(jié)束了,實際的運行結(jié)果如下:
可以看到地圖視圖已經(jīng)顯示在我們的手機上了。
總結(jié)
到此這篇關(guān)于iOS調(diào)用高德地圖SDK的文章就介紹到這了,更多相關(guān)iOS調(diào)用高德地圖SDK內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
IOS MenuViewController實現(xiàn)彈出菜單效果
這篇文章主要介紹了IOS MenuViewController實現(xiàn)彈出菜單效果,實現(xiàn)一個從下移動上來的彈出菜單,背景逐漸變深,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07