У меня есть следующий код, и я чувствую, что могу его улучшить. Конкретно я бы хотел избавиться от переключателя и принудительного литья. Полигон имеет следующую подпись типа:
let polygon: MKShape & MKGeoJSONObject
switch polygon {
case is MKMultiPolygon:
let multiPoly = polygon as! MKMultiPolygon
renderer = MKMultiPolygonRenderer(multiPolygon: multiPoly)
case is MKPolygon:
let polygon = polygon as! MKPolygon
renderer = MKPolygonRenderer(polygon: polygon)
default:
fatalError("Should have had a renderer")
}