Код в Swift 4
Для координат в json:
{
"coordinates": [
[-73.947676,40.660297],
[-73.947264,40.656437],
[-73.947159,40.655594],
[-73.946479,40.6491],
[-73.947467,40.649039]
}
Прочитать координаты:
let coordinates = json["coordinates"] as! [[Double]]
Создать массив точек:
var locationCoordinates = [CLLocationCoordinate2D]()
for coordinate in coordinates{
locationCoordinates.append(CLLocationCoordinate2DMake(coordinate.last!, coordinate.first!))
}
Создайте полигон и добавьте его на карту:
map.addOverlay(MKPolyline(coordinates: locationCoordinates,
count: locationCoordinates.count))
Убедитесь, что ваш VC соответствует MKMapViewDelegate
class ViewController: UIViewController, MKMapViewDelegate { ... }
И добавить этот метод:
func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
if overlay is MKPolygon {
let polygonView = MKPolygonRenderer(overlay: overlay)
polygonView.fillColor = .black
polygonView.strokeColor = .red
polygonView.lineWidth = 2.0
return polygonView
return MKOverlayRenderer()
}