Swift:将MKPolygon转换为UIBeizerpath并在UIView上绘制路径

时间:2018-12-04 12:42:16

标签: ios swift mkpolygon geoswift

我有一个包含要素FeatureCollection的geojson文件。我用GEOSwift解析了json,最后得到了MKPolygon对象。

我设法绘制了多边形作为MKMapView的叠加层,但是性能确实很差!

我拥有的geojson文件包含通往世界上每个国家的路径。所以我实际上不需要地图,因为我只想直接将多边形绘制到UIView。这是获取MKPolygon的代码:

func drawPolygonsFromFeatures(_ features: Features) {
    var i = 0
    for feature in features {
        if let geometries = feature.geometries {
            for geometry in geometries {
                if let shapesCollection = geometry.mapShape() as? MKShapesCollection {
                    let shapes = shapesCollection.shapes
                    for shape in shapes {
                        if let polygon = shape as? MKPolygon {
                            if let identifier = feature.id as? String,  self.countryDict.count > 0 {
                                // Set title in order to set color on country
                                polygon.title = self.countryDict[identifier]
                            }

                            main {
                                // TODO: Draw polygons on view
                            }
                        }
                    }
                }
            }
        }
        i += 1
    }
}

我知道可以使用UIBeizerPath绘制形状,但是我不知道如何将MKPolygon转换为可以在UIView上显示形状的东西。

0 个答案:

没有答案