views:

141

answers:

1

Hi All,

Trying to figure out this MKPolygon working. I've created a whole heap MKMapPoints and placed them into an array. Then I make a Polygon out of them with:

[MKPolygon polygonWithPoints:pointArr count:sqlite3_column_int(countStatement, 0)];

and add that to an Array for retrieval later.

Later I loop through the array and add each object (MKPolygon) to the map with:

[mapView addOverlay:[overlays objectAtIndex:i]];

And this according to logs works fine.

I then implement mapView: viewForOverlay: like so

- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay {
MKOverlayView *theOverlayView = nil;
for (MKPolygon *theOverlay in overlays) {
    if (theOverlay == overlay) {
        MKPolygonView *thePolygonView = [[[MKPolygonView alloc] initWithPolygon:theOverlay] autorelease];
        theOverlayView = thePolygonView;

    }
}
return theOverlayView;
}

As far as I can see this should technically work. But it doesn't, the App just crashes when it gets to the region of the map that I think its on (points may be wrong because of lat long mixup or conversion mistake but thats another thing)

Am I missing some property I need to set or could the incorrect points be causing the crash? Or am I missing it entirely?

Cheers for any help.

A: 

This was actually correct but I made a mistake putting more than I remembered into overlays - it was actually and array of dictionaries which stored the MKPolygon and a string. Correcting this got it working.

Rudiger