iOS调用高德地图SDK的完整步骤

目录
  • 准备工作:
  • 方法如下:
  • 其中申请key的方法如下:
  • 接下来就进入到项目内部的设置了:
  • 重要的点:
  • 总结

准备工作:

安装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内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

时间: 2021-11-27

iOS 高德地图仿微信发送实时位置

最近项目中要写一个微信那种发送位置的功能.具体功能在于: - 定位到当前位置 - 可定位当前位置附近的Poi - 可自行搜索目标位置,并展示附近的poi - 选择当前位置或者选择目标位置进行发送 一.准备工作 1.首先去高德地图官网下载相关的SDK(如下图): 2.按照高德地图官网的步骤继续添加所需要的依赖库 3.根据项目的bundleID前往高德地图API中创建引用并申请相关的key 高德地图应用管理后台 到这一步前期的准备工作基本差不多了,当然,我这写的不是很具体,详细的引入高德地图SDK还

利用百度地图Android sdk高仿微信发送位置功能及遇到的问题

接触了百度地图开发平台半个月了,这2天试着模仿了微信给好友发送位置功能,对百度地图的操作能力又上了一个台阶 我在实现这个功能的时候,遇到一些困难,可能也是别人将会遇到的困难,特在此列出 1.在微信发送功能中,不管用户如何拖拽地图,总有个覆盖物固定了MapView中央,怎么实现? 其实这很容易实现,只要MapView的布局文件中,将一个ImageView覆盖在MapView的中央,就能够实现不管用户如何拖拽地图,覆盖物(ImageView)总固定总MapView中央 2.如何获取MapView中央

iOS 中Swift仿微信添加提示小红点功能(无数字)

具体内容详情如下所示: 以分类的方式实现 代码 UITabBar+Extenstion.swift fileprivate let lxfFlag: Int = 666 extension UITabBar { // MARK:- 显示小红点 func showBadgOn(index itemIndex: Int, tabbarItemNums: CGFloat = 4.0) { // 移除之前的小红点 self.removeBadgeOn(index: itemIndex) // 创建小红点

Android仿微信发送语音消息的功能及示例代码

微信的发送语音是有一个向上取消的,我们使用onTouchListener来监听手势,然后做出相应的操作就行了. 直接上代码: //语音操作对象 private MediaPlayer mPlayer = null; private MediaRecorder mRecorder = null; //语音文件保存路径 private String FileName = null; FileName = Environment.getExternalStorageDirectory().getAbs

Android高德地图poi检索仿微信发送位置实例代码

最近项目需求把发送定位模块改成类似微信发送位置给好友的效果,我使用了高德地图实现了一个demo,效果图如下: 从主界面中我们可以看到中心标记上面显示的就是我们定位的地址,下面是一个listview列表,第一条item的数据就是我们定位得到的地址,下面其余的都是我们根据定位得到的经纬度通过poi周边搜索得到的地址.我们进行了如下操作: 我们点击列表的item,中心标记会移动到该item对象的地址上面去. 我们手动移动地图的时候,中心标记的地址会发生相应的变化并且下面的列表也会发生相应的变化. 根据

iOS中WKWebView仿微信加载进度条

本文实例为大家分享了WKWebView仿微信加载进度条的具体代码,供大家参考,具体内容如下 WKWebView添加了estimatedProgress属性(double类型),我们可以利用该属性来设置UIProgressView github代码仓库上存放的Demo 为页面添加UIProgressView属性 @property (nonatomic, strong) WKWebView *mywebView; @property (nonatomic, strong) UIProgressVi

微信小程序 高德地图路线规划实现过程详解

前言 最近项目中做到相关网约车小程序.需要使用到地图中的路线规划,对3种地图进行了分析.这里稍微做一下总结: 百度地图 百度坐标 (BD-09) 腾讯地图 火星坐标(GCJ-02) 高德地图 火星坐标(GCJ-02) 微信小程序中使用的是腾讯地图作为底图.因此如果使用百度地图时,需要注意坐标的转换.此类坐标的转换函数在网上都有,这里不做过多解释 准备工作: 1.在做小程序 ---- 路线规划之前,需要准备小程序APPID 以及相应使用地图的KEY值. 2.微信小程序API 之 位置 API wx

Vue使用高德地图搭建实时公交应用功能(地图 + 附近站点+线路详情 + 输入提示+换乘详情)

最近项目要使用高德地图写了一个实时公交的应用,这边分享一个小应用主要熟悉下高德地图在vue中的使用,常用api,vue的常用指令 先给大家看下页面效果: 如果有需要源码的童鞋请移步我的github地址 vue搭建实时公交 (欢迎star) 实现思路 在vue项目中导入高德地图 具体功能调用相应高德js APi 1.在vue项目中导入高德地图 1.修改webpac.base.conf.js文件 externals: { 'AMap': 'AMap' } 2.引入sdk 引入有两种方式,一种是在in

微信小程序map组件结合高德地图API实现wx.chooseLocation功能示例

本文实例讲述了微信小程序map组件结合高德地图API实现wx.chooseLocation功能.分享给大家供大家参考,具体如下: 声明 bug: 页面搜索返回的列表在真机测试是会出现不显示问题? 造成原因:在小程序map组件的同一区域,map组件的视图层比普通的文本视图层要高,所以在真机会遮挡! 解决办法:将该文本视图采用cover-view,放在map中. 感谢: 感谢Lrj_estranged指出问题! 效果图 实现原理 通过高德地图的微信小程序开发API(getInputtips),实现关

PopupWindow仿微信浮层弹出框效果

最近公司项目需要实现类似微信的浮层弹出框.研究发现是用PopupWindow实现的.而且可以自定义位置以及出现和退出时的动画,由于太晚了就不实现动画了,需要得同学请自己研究下.由于本人新手其中的不足和缺点请见谅. 代码如下: 首先是定义顶部按钮的main.xml文件 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.an