Преобразование объектов Cllocation в структуры MKMappoint
-
26-10-2019 - |
Вопрос
Я хотел бы создать MKPolygon
отобразить на MKMapView
. Анкет Моя проблема в том, что я не могу понять, как это сделать.
Я знаю это, чтобы создать MKPolygon
Я должен создать кучу MKMapPoint
препараты и поместите их в массив и вызовите метод класса polygonWithPoints
.
Моя проблема в том, что у меня есть NSArray
содержащий CLLocation
объекты, которые имеют coordinate.latitude
а также coordinate.longitude
характеристики.
Как мне преобразовать один за другим в MKMapPoint
структура?
Решение
Если у вас есть 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
свойство установлено).