Tenía curiosidad por saber cuál era la forma correcta de dibujar una línea de ruta simple entre un conjunto de puntos? Actualmente tengo un conjunto de coordenadas y cuando lo paso a polylineWithCoordinates y hago todas las demás cosas necesarias, dibuja una gran red de líneas que interconectan todos los puntos entre sí. He visto algunas muestras, pero ninguna de ellas parece hacer nada especial para explicar esto, incluso cuando usan más de dos puntos.MapKit - polylineWithCoordinates interconecta todos los puntos
- (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;
}
Este es el código en mi mapViewController que es responsable de la elaboración, por si acaso alguien ve lo que estoy haciendo, o no hacerlo.
Ahora que veo todo mucho más cerca, en realidad no se está conectando coordenadas adyacentes entre sí. Cada punto solo tiene 2 líneas derivadas conectando ese punto con 2 puntos más, pero no puedo entender el patrón en el que los conecta.
¿Alguna de las coordenadas se repite? Asegúrese de que las coordenadas en myCheckpoints estén en el orden en que desea dibujar la línea. – Anna
Sí, todas las coordenadas son únicas y están en el orden correcto. ¿Estoy en lo cierto al suponer que esto no debería estar sucediendo? –
Dibujará las líneas en el orden en que se proporcionan las coordenadas. ¿Cuántos puntos hay en la línea? Registre las coordenadas a medida que se agregan en el for-loop. – Anna