Полигон с неправильным порядком координат - PullRequest
0 голосов
/ 15 февраля 2012

Я играю, чтобы вырастить многоугольник из массива CLLocationCoordinate2D.Это код:

int coordsLen = [self.coordinatesArray count];
CLLocationCoordinate2D *coords = malloc(sizeof(CLLocationCoordinate2D) * coordsLen);
NSLog(@"count: %d", coordsLen);
for (int i=0; i < coordsLen; i++)
{
    coordinates *coordObj = (coordinates *)[self.coordinatesArray objectAtIndex:i];
    coords[i] = CLLocationCoordinate2DMake(coordObj.latitude, coordObj.longitude);
}
self.polygon = [MKPolygon polygonWithCoordinates:coords count:coordsLen];
free(coords);

В результате вместо того, чтобы показать мне прямоугольник (как порядок координат в self.coordatesArray), он показывает мне песочные часы.

Дажеесли я использую конструктор fromPoint, я получаю тот же результат:

int coordsLen = [self.coordinatesArray count];
MKMapPoint points[coordsLen];
for (int i=0; i < coordsLen; i++)
{
    coordinates *coordObj = (coordinates *)[self.coordinatesArray objectAtIndex:i];
    CLLocationCoordinate2D c = {coordObj.latitude,coordObj.longitude};
    points[i] = MKMapPointForCoordinate(c);
}

self.polygon = [MKPolygon polygonWithPoints:points count:coordsLen];

Вот так я добавляю полигон в качестве наложения на карту:

self.polygonView = nil;
[self.mapView addOverlay:self.polygon];
[self.mapView setVisibleMapRect:[self.polygon boundingMapRect] animated:TRUE];

Это координаты:

coord1 =     {
    latitude = "45.546112";
    longitude = "9.11805";
};
coord2 =     {
    latitude = "45.545773";
    longitude = "9.120568";
};
coord3 =     {
    latitude = "45.544468";
    longitude = "9.120629";
};
coord4 =     {
    latitude = "45.544544";
    longitude = "9.118";
};

Есть предложения ??

Заранее спасибо, Самуил

1 Ответ

0 голосов
/ 26 апреля 2012

проблема была в том, что возвращенный набор записей, который я получаю с координатами, был сохранен в NSDictionary, что у него нет порядка.Используя счетчик из набора записей, я создал NSMutableArray, достигнув своей цели.

Samuel

...