2010-08-19 6 views
3

Essayer de comprendre ce travail MKPolygon. J'ai créé un tas de MKMapPoints et les ai placés dans un tableau. Puis j'en fais un Polygone avec:Essayer d'obtenir overlay MKPolygon travailler

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

et de l'ajouter à un tableau pour récupération ultérieure.

Plus tard, je boucle à travers le réseau et ajouter chaque objet (MKPolygon) à la carte avec:

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

Et ceci en fonction de journaux fonctionne très bien.

Je puis mettre en œuvre Mapview: viewForOverlay: comme si

- (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; 
} 

Pour autant que je peux voir cela devrait fonctionner sur le plan technique. Mais ce n'est pas le cas, l'application plante juste quand elle arrive à la région de la carte que je pense (les points peuvent être faux en raison d'une erreur de conversion ou d'une erreur de conversion, mais c'est autre chose). propriété que je dois définir ou est-ce que les points incorrects peuvent causer l'accident? Ou est-ce que je le manque complètement?

Vive toute aide.

Répondre

3

C'était en fait correct, mais je fait une erreur en mettant plus que je me suis souvenu dans des superpositions - il était en fait et un ensemble de dictionnaires qui stockaient la MKPolygon et une chaîne. Corriger cela a fonctionné.