Ero solo curioso di sapere qual era il modo corretto di disegnare una linea semplice tra un insieme di punti? Al momento ho una serie di coordinate e quando la passo a polylineWithCoordinates e faccio tutte le altre cose necessarie, disegna una grande rete di linee che collegano tutti i punti l'una all'altra. Ho esaminato alcuni campioni ma nessuno di loro sembra fare qualcosa di speciale per spiegare questo, anche quando usano più di due punti.MapKit - polylineWithCoordinates interconnette tutti i punti
- (void)viewDidLoad
{
[super viewDidLoad];
...
//Add drawing of route line
CLLocationCoordinate2D coordinates[[myCheckpoints count]];
int i = 0;
for (Checkpoint *ckpt in myCheckpoints)
{
coordinates[i] = CLLocationCoordinate2DMake([ckpt.lat floatValue] , [ckpt.lon floatValue]);
i++;
}
MKPolyline *route = [MKPolyline polylineWithCoordinates: coordinates count: [myCheckpoints count]];
[mapView addOverlay:route];
}
- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay {
MKPolylineView *polylineView = [[[MKPolylineView alloc] initWithPolyline:overlay] autorelease];
polylineView.strokeColor = [UIColor greenColor];
polylineView.lineWidth = 5.0;
return polylineView;
}
Questo è il codice nel mio mapViewController che è responsabile per il disegno, nel caso in cui qualcuno vede quello che sto facendo, o non fare.
Ora che guardo tutto molto più vicino, in realtà non connetto le coordinate adiacenti l'un l'altro. Ogni punto ha solo 2 linee da esso che collegano quel punto a 2 punti in più ma non riesco a capire il motivo a cui le connette.
Ripetere una delle coordinate? Assicurati che le coordinate in myCheckpoints siano nell'ordine in cui vuoi che venga tracciata la linea. – Anna
Sì, tutte le coordinate sono uniche e nell'ordine corretto. Quindi ho ragione nel presumere che questo non dovrebbe accadere? –
Disegnerà le linee nell'ordine in cui sono fornite le coordinate. Quanti punti ci sono nella linea? Registra le coordinate man mano che vengono aggiunte nel ciclo for. – Anna