iOS調用高德地圖SDK的完整步驟

準備工作:

安裝CocoaPods使用下載第三方庫相同的方法下載SDK

方法如下:

(1)打開終端,cd 文件路徑 進入到所創建的項目文件中

(2)輸入pod init為該項目創建Podfile文件

(3)在Podfile文件中添加pod 'AMap3DMap'pod 'AMap2DMap'

其中3D的是3D地圖,2D的是2D地圖,選擇其一添加即可,若全選的話會發生沖突致使SDK安裝失敗

(4)輸入pod install下載SDK(若下載的SDK不是最新版可輸入pod repo update進行更新)下載完成後即可點擊.xcworkspace文件進入項目編寫代碼瞭另外需要註冊成為高德地圖的個人開發者並前往“高德開放平臺控制臺”申請 iOS Key。該iOS key在實際的項目編寫中需要用到

其中申請key的方法如下:

登錄或註冊

1、如果您還未註冊過,請點擊此處完成註冊。

2、如果您已經註冊過,請登錄後在申請key,申請與註冊的入口如下:

請添加圖片描述

創建應用

進入“控制臺—應用管理—創建新應用”,點此進入。

請添加圖片描述

申請為該應用添加key

1、點擊左側“+”新增Key。

請添加圖片描述

2、填寫必要字段,此時需要選擇正確的key類型。

請添加圖片描述

在上圖中選擇iOS平臺,選擇後還需要填寫安全碼Bundle ID: ,該安全碼的獲取如下圖:

請添加圖片描述

將一切填好後就可以獲取到我們需要的key瞭

接下來就進入到項目內部的設置瞭:

1.iOS9為瞭增強數據訪問安全,將所有的http請求都改為瞭https,為瞭能夠在iOS9中正常使用地圖SDK,需要在”Info.plist”中進行如下配置,否則影響SDK的使用,(見下圖):

我們需要在App Transport Security Settings下創建Allow Aebitrary Loads,並將其Type為Boolean類型的Value設置為YES;如本身就沒有App Transport Security Settings的話則需要創建一個

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文件相應的方法中進行地圖初始化,初始化的步驟:

(1) import MAMapKit.h 頭文件;

(2)構造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];
}

重要的點:

我們在實現瞭以上操作之後,是仍然無法成功加載出地圖的,此時運行會提示高德地圖SDK隱私合規相關的問題,這是由於法律法規對於APP所要求的內容,必須要通過這個檢測,否則就無法顯示地圖視圖,不過不用慌,看下面:

在構造MAMapView(MAOfflineMap,MAOfflineMapViewController,MATraceManager等)之前必須進行合規檢查,設置接口之前保證隱私政策合規,檢查接口如下:

[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.

	//添加隱私合規接口代碼
	[MAMapView updatePrivacyShow:AMapPrivacyShowStatusDidShow privacyInfo:AMapPrivacyInfoStatusDidContain];
	[MAMapView updatePrivacyAgree:AMapPrivacyAgreeStatusDidAgree];

	///初始化地圖
	MAMapView *_mapView = [[MAMapView alloc] initWithFrame:self.view.bounds];
    
	///把地圖添加至view
    [self.view addSubview:_mapView];
}

此時,我們的全部流程就結束瞭,實際的運行結果如下:

請添加圖片描述

可以看到地圖視圖已經顯示在我們的手機上瞭。

總結

到此這篇關於iOS調用高德地圖SDK的文章就介紹到這瞭,更多相關iOS調用高德地圖SDK內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: