我有一个应用程序,它将允许用户绘制自己的地理围栏。现在,它的工作方式是用户在屏幕上绘制地理围栏,而应用程序将跟踪他们绘制的位置并将其路径存储到CGMutablePath中。
我的问题是如何使用此CGMutablePath并将其应用于MKPolygon,以便用户手绘的地理围栏可以用作地图叠加层?
首先,您需要利用用户的触摸点来构建一个MKOverlay
:
let coords = points.map({ CLLocationCoordinate2D(latitude: Double($0.x), longitude: Double($0.y)) })
let polygon = MKPolygon(coordinates: coords, count: coords.count)
您可能还需要考虑地图的当前缩放级别,以确保屏幕上的点与经纬度之间的转换正确。
接下来,您可以将此叠加层添加到地图中:
mapView.add(overlay)
要设置叠加层的样式(更改其颜色等),请使用以下MKMapViewDelegate
方法:
func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
let renderer = MKPolygonRenderer(overlay: overlay)
renderer.fillColor = UIColor.blue
return renderer
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句