前言
入职新公司后接手的新项目使用OC开发,项目主要功能里涉及地图开发,技术选型上使用高德地图服务,本篇博客主要记录高德地图SDK的集成以及相关使用。
环境配置
OC, Xcode 9.4.1
注册
首先在高德开发平台注册一个账号,注册流程略。注册完成后,我们需要在控制台“我的应用”里创建一个应用,根据使用的平台创建相应的Key。
引入SDK
这里我们使用CocoaPods来管理高德地图的SDK。在项目的podfile里根据需要添加以下SDK。
1 | pod 'AMap2DMap' #高德2D地图SDK |
注意:高德2D地图和3D地图SDK不能同时引入,其主要差别在于:2D地图是栅格地图,采用切片的方式显示地图,3D地图为矢量地图,采用终端绘制地图的方式,地图功能更加丰富。
功能使用
启动SDK
在引入头文件#import<AMapFoundationKit/AMapFoundationKit.h>后,调用以下方法配置高德服务的key。
1 | [AMapServices sharedServices].apiKey =@"您的key"; |
显示地图
实例化一个地图,添加到控制器的view上。我们让控制器持有一个地图属性,在该属性的get方法里配置地图的功能。
1 | - (MAMapView *)mapView { |
绘制标记点、折线、面
通过实现MAMapViewDelegate的相关代理方法实现地图绘制。
标记点
1 | /** |
标注可以精确表示用户需要展示的位置信息,高德地图SDK提供的标注功能允许用户自定义图标和信息窗,同时提供了标注的点击、拖动事件的回调。SDK 提供的地图标注为MAAnnotation类,不同的标记可以根据图标和改变信息窗的样式和内容加以区分。
iOS SDK提供的大头针标注MAPinAnnotationView,通过它可以设置大头针颜色、是否显示动画、是否支持长按后拖拽大头针改变坐标等。
通过以下方法添加标注。
1 | // 1 实例化MAPointAnnotation类 |
折线、面
1 | /** |
折线类为 MAPolyline,由一组经纬度坐标组成,并以有序序列形式建立一系列的线段。iOS SDK支持在3D矢量地图上绘制带箭头或有纹理等样式的折线,同时可设置折线端点和连接点的类型,以满足各种绘制线的场景。
1 | //构造折线数据对象 |
通过MACircle类绘制圆,圆是由中心点(经纬度)和半径(米)构成。
1 | //构造圆 |
可实现类似效果图如下: