iOS—— 调用高德地图SDK

我们在许多App中可以发现关于地图的调用以及定位等等功能都是什么重要的,比如滴滴打车,美团外卖等等都是十分依赖于地图的。所以我们就应该学会如和去调用地图。本周我就学习了一下如何去调用高德地图。

调用高德地图的过程

首先我们需要添加第三方库:

  1. 打开终端,输入’cd’,然后将文件拖入终端
  2. 第二步,touch Podfile为项目创建Podfile文件
  3. 打开Podfile文件然后pod 'AMap3DMap’或pod ‘AMap2DMap’
    其中3D的是3D地图,2D的是2D地图,选择其一添加即可,若全选的话会发生冲突致使SDK安装失败。
  4. 输入pod install下载SDK(若下载的SDK不是最新版可输入pod repo update进行更新)

添加完第三方库后,我们需要注册成为高德地图的个人开发者并前往“高德开放平台”申请 iOS Key。该iOS key在实际的项目编写中需要用到,我们注册完点击应用管理——我的应用:

ios集成高德地图方法 ios6高德地图_高德地图


点击来之后我们就开始创建新应用:

ios集成高德地图方法 ios6高德地图_ios_02


应用名称:就是给你新建的应用起个名字,个人建议起的名字和你的App关联起来,然后应用类型选择你需要的类型。然后为你的项目申请一个专用的Key:

ios集成高德地图方法 ios6高德地图_高德地图_03


首先选择iOS平台,Key名称也是随便起的,只要你自己能记住就行。

安全码Bundle ID在Xcode项目中切换到info——General:

ios集成高德地图方法 ios6高德地图_ios集成高德地图方法_04


然后我们需要在App Transport Security Settings下创建Allow Aebitrary Loads,并将其Type为Boolean类型的Value设置为YES;如本身就没有App Transport Security Settings的话则需要创建一个:

ios集成高德地图方法 ios6高德地图_ios_05

接下来我们先在AppDelegate.m中配置高德地图的Key:

ios集成高德地图方法 ios6高德地图_高德地图_06

然后在ViewController.m中初始化地图,并将地图加载到视图上:

#import "ViewController.h"
#import <MAMapKit/MAMapKit.h>
#import <AMapFoundationKit/AMapFoundationKit.h>
//#import <AMapLocationKit/AMapLocationKit.h>

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    [MAMapView updatePrivacyShow:AMapPrivacyShowStatusDidShow privacyInfo:AMapPrivacyInfoStatusDidContain];
    [MAMapView updatePrivacyAgree:AMapPrivacyAgreeStatusDidAgree];

        ///初始化地图
   _mapView = [[MAMapView alloc] initWithFrame:self.view.bounds];
        
        ///把地图添加至view
    [self.view addSubview:_mapView];
    _mapView.showsUserLocation = YES;
    //定位功能的实现
    [AMapServices sharedServices].enableHTTPS = YES;
    MAUserLocationRepresentation *r = [[MAUserLocationRepresentation alloc] init];
    r.showsAccuracyRing = NO;
    [_mapView updateUserLocationRepresentation:r];
//    [self initControls];
   
}

看下效果图吧:

ios集成高德地图方法 ios6高德地图_ios_07


另外,我的代码里还实现了定位功能,但是在虚拟机上不能实现。。。应该在真机上可以实现。

定位功能需要添加四个设置:

ios集成高德地图方法 ios6高德地图_高德地图_08


基本上就是这样了