Mapkit Frage/Problem - Linie zeichnen

A

azrax

Neues Mitglied
Thread Starter
Dabei seit
07.01.2011
Beiträge
18
Reaktionspunkte
0
Hallo Leute,

und zwar folgendes Szenario:

Ich stelle eine Karte da, soweit kein Problem ;-)
Auf dieser Karte werden verschiedene Koordinaten markiert (Auch kein Problem)
Diese Koordinaten sollen einen Titel erhalten (z.B. Hier wohn XY)

So, da es sich um sehr viele Koordinaten auf kleinem Raum handelt, habe ich folgende Idee

Labels am Rand untereinander platzieren und einen Pfeil von Koordinate zu entsprechendem Label.

Vorteil: übersichtlicher, Labels Überdecken sich gegenseitig nicht, alle Labels werden angezeigt (und nicht nur das, das ausgewählt wurde)

Problem: Wie implementiere ich das.

Mittels convertCoordinate:toPointToView: kann ich mir zu einer Koordinate den entsprechenden Punkt auf dem Bildschirm ausgeben lassen.

Desweiteren füge ich in meiner mapView die entsprechenden Labels am Rand ein.

Also habe ich jetzt am Rand die Labels (und deren Position auf dem Bildschirm) sowie die Punkte zu den entsprechenden Labels.

(vereinfachter) Codeausschnitt:

Code:
for (int i = 0; i < 20; i++) {
    CGPoint point = [mapView convertCoordinate:[coordinate objectAtIndex:i] toPointToView:mapView];
    UILabel* label = [[[UILabel alloc] initWithFrame:CGRectMake(824, 20*i, 200, 20)] autorelease];
    label.text = @"Testlabel";
    [mapView addSubview:label];

    //und hier müsste jetzt von point zu label eine linie gezeichnet werden

}

Erste Probleme also gelöst.

Zweites Problem: wie zeichne ich von dem Punkt zum Label eine Linie?

Drittes Problem: beim zoomen/verschieben der Map, ändern sich natürlich auch die Punkte der Koordinaten auf dem Bildschirm, das müsste ständig aktualisiert werden / möglich?

Habt ihr da einen Vorschlag?

Ich müsste ja eine View über die MapView legen, auf der ich dann Mittels Quartz zeichnen kann. Hat aber den Nachteil, dass die Interaktion mit der Map verloren geht.

Liebe Grüße
 
Zurück
Oben Unten