2010-12-03 11 views
3

Ey Jungs, so ein scheinbar einfaches Problem, aber anscheinend zu kompliziert für mich. Ich versuche, eine Instanz von MKPolygon zu erstellen, und es geht nicht so gut. Hier ist der Code:Wie erklärt man ein MKPolygon

MKMapPoint point1 = {38.53607,-121.765793}; 
MKMapPoint point2 = {38.537606,-121.768379}; 
MKMapPoint point3 = {38.53487,-121.770578}; 
NSArray *mapPointArr = [[NSArray alloc] initWithObjects:point1,point2,point3,nil count:3]; //errors here 

MKPolygon *polygon = [MKPolygon polygonWithPoints:mapPointArr count:3]; 

Ich erhalte eine Reihe von Fehlern auf der Linie, an dem ich das Array initialisieren (incompatible type for argument 1 ...). Irgendeine Idee, was ist los? Danke im Voraus!

Antwort

5

MKMapPoint ist eine einfache c-Struktur und Sie können sie nicht direkt in objec-c Container hinzufügen.

In Ihrem Fall müssen Sie das nicht tun, da +polygonWithPoints: kein NSArray erfordert, sondern ein C-Array als 1. Parameter. Die richtige Methode zum Erstellen eines Polygons lautet:

MKMapPoint points[3] = {{38.53607,-121.765793}, {38.537606,-121.768379}, {38.53487,-121.770578}}; 
MKPolygon *polygon = [MKPolygon polygonWithPoints:points count:3]; 
+0

Yep! Das hat funktioniert, danke! – Stunner

+0

Wie zeigt man dieses Polygon auf der Karte ??? – prajakta

+0

um es auf der Karte hinzuzufügen, würden Sie [mapView addOverlay: polygon]; und implementieren Sie dann die ViewForOverlay-Delegatmethode – spiralstairs