尝试在MapView上绘制多边形

时间:2016-12-13 05:58:48

标签: ios objective-c mkmapview mapkit

如下图所示的代码显示:

Polygon

我试图在MapView上创建一个简单的多边形来标记特定区域。

我已经设置了坐标,也计算了多边形视图。

我还想念别的什么?

为什么mapview没有显示任何内容?

1 个答案:

答案 0 :(得分:0)

我正在对ObjC进行快速扫描,但看起来你正在处理MapKit委托函数,根据你显示的方法和错误信息寻找多边形渲染器。

MapKit传递它想要渲染的叠加层,确定该叠加层的类型(在这种情况下为多边形),然后创建并配置一个渲染器实例,它可以用来显示多边形并返回该对象。 MapKit使用相同的调用来获取多边形线和图块叠加图像的渲染器,因此如果您有任何其他叠加层,则需要检查类型。

在swift中,渲染器的定义如下:

func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer
{
    switch overlay
    {
    case is MKPolygon:
        let polygonRenderer = MKPolygonRenderer(overlay: overlay)

        polygonRenderer.strokeColor = UIColor.black
        polygonRenderer.lineWidth = 5
        polygonRenderer.fillColor = UIColor.white

        return polygonRenderer

    default:
        [whatever for poly lines, map overlays, etc.]
    }
}

您将使用渲染器提供mapView以显示多边形。鉴于我们正在访问相同的API,我认为您需要做类似的事情。

错误的语言,但我希望它有所帮助...