Если у вас есть NSArray
объектов, содержащих координаты, будет проще использовать метод polygonWithCoordinates:count:
вместо polygonWithPoints:count:
.
Метод polygonWithCoordinates:count:
принимает массив C со структурой CLLocationCoordinate2D
. Свойство coordinate
в объекте CLLocation
также является CLLocationCoordinate2D
.
Если вы все еще хотите использовать polygonWithPoints:count:
, вы можете использовать функцию MKMapPointForCoordinate
для преобразования свойства coordinate
в CLLocation
в MKMapPoint
.
Используя любой из этих методов, вы сначала создаете массив C соответствующей структуры, перебирая NSArray
для установки каждого элемента в массиве C. Затем позвоните polygonWithCoordinates
или polygonWithPoints
.
Этот ответ содержит пример кода с использованием polygonWithCoordinates
. В этом примере вы изменили бы две строки в цикле for
на:
CLLocation *coordObj = (CLLocation *)[coordinateData objectAtIndex:i];
coords[i] = coordObj.coordinate;
Не забудьте реализовать метод делегата viewForOverlay
(и убедиться, что свойство delegate
представления карты установлено).