我有一个包含要素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上显示形状的东西。