2012-06-06 18 views
25

I tienen una matriz de puntos que se puede extraer en un mapa, su ya decodificado:Cómo dibujar un MKPolyline en un MapView?

- (void) drawRoute:(NSArray *) path { 
    NSInteger numberOfSteps = path.count; 

    CLLocationCoordinate2D coordinates[numberOfSteps]; 
    for (NSInteger index = 0; index < numberOfSteps; index++) { 
     CLLocation *location = [path objectAtIndex:index]; 
     CLLocationCoordinate2D coordinate = location.coordinate; 

     coordinates[index] = coordinate; 
    } 

    MKPolyline *polyLine = [MKPolyline polylineWithCoordinates:coordinates count:numberOfSteps]; 
    [map addOverlay:polyLine]; 
} 

donde "mapa" es una instancia de MKMapView, y la ruta de la matriz que representa el conjunto ya decodificada de puntos.

Pensé que con la línea [map addOverlay:polyLine]; se dibujaría. He visto en algunas páginas este método:

- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay { 
    MKPolylineView *polylineView = [[MKPolylineView alloc] initWithPolyline:overlay]; 
    polylineView.strokeColor = [UIColor redColor]; 
    polylineView.lineWidth = 1.0; 

    return polylineView; 
} 

¿Es la polilíneaVer lo que realmente se dibuja en el mapa? También intenté pasar el MKPolyline (del método anterior) al argumento "< MKOverlay> overlay" de este último método, pero arroja una excepción.

Creo que estoy cerca, pero no sé qué hacer ahora.

Por favor ayuda! Muchas gracias por adelantado.

+2

Tenga en cuenta que este código ahora está obsoleto en iOS7. –

Respuesta

13

Done.

Fue algo muy estúpido, no configuré el delegado para MapView. Simplemente agregando [map setDelegate: self]; Hizo el truco.

¡Gracias de todos modos !.

4

Simplemente crea MKPolyline con las coordenadas & agrega que polyLine a la vista del mapa.

MKPolyline *polyLine = [MKPolyline polylineWithCoordinates:coordinates count:numberOfSteps]; 
    [map addOverlay:polyLine]; 

Va a encontrar un tutorial de here sobre cómo dibujar una polilínea sobre unas coordenadas. Editar: La url ya no parece válida. Puede encontrar la versión archivada de esta url here.

+0

Aquí un enlace a una versión archivada del mismo: http://web.archive.org/web/20120906022305/http://navarra.ca/?p=786 – Brian