前言:
前段时间,在一个项目中需要自定义地图。于是,我们选择了接入了高德地图。
基于这次自定义地图的实践,总结一些使用上的一些小细节,并计划落地一系列地图相关的文章。
目录如下:
iOS 高德SDK应用实践(一)—— 简介与初始化地图
iOS 高德SDK应用实践(二)—— 自定义大头针AnnotationView
iOS 高德SDK应用实践(三)—— 自定义气泡CalloutView
本篇将介绍如何接入高德地图,以及高德地图SDK的简单使用。
一、高德地图简介
高德是中国领先的数字地图内容、导航和位置服务解决方案提供商。拥有导航电子地图甲级测绘资质、测绘航空摄影甲级资质和互联网地图服务甲级测绘资质"三甲"资质,其优质的电子地图数据库成为公司的核心竞争力。于2014年2月,被阿里巴巴以11亿元全资收购。(内容源于360搜索)
二、接入高德地图
-
第一步:去高德开放平台,申请高德
APIKey
。(传送门:链接) -
第二步:使用CocoaPods自动部署,将高德
SDK
导入项目。
关于CocoaPods的使用请查看:CocoaPods —— 简介、安装及基本使用
修改podfile,如下:
platform :ios, '10.0'
target '你的项目名' do
use_frameworks!
pod 'AMap3DMap' #3D地图SDK
pod 'AMapSearch' #地图SDK搜索功能
pod 'AMapLocation' #定位SDK
end
然后,pod install
一下。
三、高德地图简单使用
- 首先,导入高德地图头文件。
PS:这里有个小知识点,Swift项目导入头文件需要用到桥接头文件(Objective-C Bridging Header)。具体方法见:iOS 如何在Swift项目中导入OC头文件?
#import <MAMapKit/MAMapKit.h>
#import <AMapFoundationKit/AMapFoundationKit.h>
- 其次,在
AppDelegate
中,填写申请到的APIKey
。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
//...
AMapServices.shared().apiKey = "申请好的APIKey"
//...
return true
}
- 然后,在
Controller
中实例化地图对象。
override func viewDidLoad() {
super.viewDidLoad()
let mapView = MAMapView(frame: self.view.bounds)
mapView.delegate = self
self.view.addSubview(mapView)
}
这时候,已经能展示地图了,是不是很简单?
- 这时候,我们再稍微定制一下。
常用可配置参数如下:
参数 | 类型 | 说明 |
---|---|---|
logoCenter | CGPoint | 可设置Logo的位置。必须在mapView.bounds之内,否则会被忽略。 |
showsCompass | Bool | 是否显示指南针。 |
compassOrigin | CGPoint | 设置指南针的位置。 |
showsScale | Bool | 是否显示比例值。 |
scaleOrigin | CGPoint | 设置比例尺的位置。 |
zoomEnabled | Bool | 是否开启缩放手势,默认true。 |
scrollEnabled | Bool | 是否开启滑动手势,默认true。 |
rotateEnabled | Bool | 是否开启旋转手势,默认true。 |
rotateCameraEnabled | Bool | 是否开启倾斜旋转手势,默认true。用户可以在地图上放置两个手指,移动它们一起向下或向上去增加或减小倾斜角。 |
setZoomLevel | CGFloat | 改变地图缩放级别。范围从3级到19级,共17级。级别越高,展示的内容越细,例如街道等等。 |
setCenter | CLLocationCoordinate2D | 改变地图中心的位置。传递具体的经纬度。 |
注意:如果用到定位,需要开启定位权限。另外,模拟器无法模拟定位功能。
func initMapView() {
AMapServices.shared()?.enableHTTPS = true
mapView = MAMapView(frame: self.view.bounds)
mapView.showsUserLocation = true
mapView.isRotateEnabled = false // 禁止旋转手势
mapView.userTrackingMode = .followWithHeading // 打开定位方向
mapView.isRotateCameraEnabled = false // 禁止倾斜手势
mapView.showsCompass = false // 禁止显示指南针
mapView.delegate = self
mapView.setZoomLevel(13.0, animated: true) // 默认缩放等级为13
mapView.pausesLocationUpdatesAutomatically = false
self.view.addSubview(mapView)
}
这样,地图就简单配置好了,显示如下图:
最后,更多详细信息,请参考:高德地图官方文档
网友评论