有类似名称的问题,例如 this one ,但这不是我要找的。p>
基本上,我在标准 map 上绘制了一堆 MKPolygon
,为它们赋予了笔触、随机颜色等。我希望能够给它们“命名”,添加一个标签或带有标签的 UIView,这样看起来不错。这可能吗?
这是我的 map 的样子
下面是实现
func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
if overlay is MacaronMKPolygon {
let macaronOverlay = overlay as! MacaronMKPolygon
let polygonView = MKPolygonRenderer(overlay: macaronOverlay)
polygonView.strokeColor = UIColor.gray
polygonView.lineWidth = 1
polygonView.alpha = shouldShowMacaron ? 1.0 : 0.0
polygonView.fillColor = macaronOverlay.color
return polygonView
}
return MKOverlayRenderer()
}
最佳答案
所以 MKPolygon 的一个好处是它的核心实际上是一种 MKMultiPoint,它继承自 MKShape,它是 MKAnnotation 的子类。只需按照文档从 MKPolygon 一直往下看即可。
所以最好的部分是 MKPolygon 需要符合 MKAnnotation 并因此定义坐标属性。定义为注释的中心。
polygonView.coordinate
因此,这将为您提供 Apple 定义的多边形中心。不幸的是,现在多边形的形状很奇怪,它可能不是真正的中心,但应该足够接近了。很高兴我们能从 Apple 免费获得一些东西。
使用此坐标,您可以创建一个 MKAnnotation 和 MKAnnotationView 以放置在您的叠加层上。
关于ios - 在 MapKit 中的多边形中心添加标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44142184/