Вопрос

Я хотел бы создать 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 свойство установлено).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top