overlay - ShenYj/ShenYj.github.io GitHub Wiki
- 百度地图
- 高德地图
- 腾讯地图
- 原生地图
三方地图框架的确很便捷,为我们封装了很多好用功能, 比如连最基础的地图缩放等级,在源生地图中默认也是不包含的
境外统一为 WGS84
, 国内高德与腾讯使用的是国测局的 GCJ02
, 百度是二次加密后的 BD09
最常见的三个坐标系,除此之外,还有其他坐标系
地图覆盖物主要包含以下两类
- Annotation
- Overlay
Annotation
基本做地图必用的, 展示一些自定义样式大头针
Overlay
包含路线、图形等,以及一些手绘图自定义图片等
Overlay
其主要包含
-
MKPolyline
: 比如路线 -
MKPolygon
: 比如绘制矩形、不规则多边形等 -
MKCircle
: 绘制圆形
自定义图片覆盖物可以通过自定义 Overlay
实现
-
e.g. 绘制矩形
let southWest = CLLocationCoordinate2D(latitude: 39.912804, longitude: 116.391462) let northEast = CLLocationCoordinate2D(latitude: 39.923593, longitude: 116.402614) let leftTop = CLLocationCoordinate2D(latitude: northEast.latitude, longitude: southWest.longitude) let leftDown = CLLocationCoordinate2D(latitude: southWest.latitude, longitude: southWest.longitude) let rightDown = CLLocationCoordinate2D(latitude: southWest.latitude, longitude: northEast.longitude) let rightTop = CLLocationCoordinate2D(latitude: northEast.latitude, longitude: northEast.longitude) /// 顺时针方向 var coords = [leftTop, rightTop, rightDown, leftDown] /// 多边形 let polygonOverlay = MKPolygon(coordinates: &coords, count: coords.count) mapView.addOverlay(polygonOverlay)
这里在设置坐标点时是顺时针方向, 之前在写百度地图绘制矩形时是传入了逆时针方向
效果图:
百度