Comment dessiner une MKPolyline sur une MapView?

j'ai un tableau de points sur une carte, son déjà décodé:

- (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];
}

où " map " est une instance de MKMapView, et path le tableau représentant l'ensemble de points déjà décodés.

je pensais qu'avec la ligne [map addOverlay:polyLine]; il serait établi. J'ai vu dans certaines pages cette méthode:

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

    return polylineView;
}

est-ce que polylineView est réellement dessiné sur la carte? J'ai aussi essayé de passer la MKPolyline (de la méthode ci-dessus) à la superposition " " argument de cette dernière méthode, mais jette une exception.

je pense que je suis proche, mais je ne sais pas quoi faire maintenant.

s'il vous Plaît aider! Merci beaucoup à l'avance.

27
demandé sur David 2012-06-06 13:29:42

3 réponses

Terminé.

était une chose très stupide, je n'ai pas mis le délégué pour le MapView. Il suffit d'ajouter [map setDelegate:self]; fait le tour.

Merci quand même!.

14
répondu Fustigador 2012-06-06 09:39:30

il suffit de créer MKPolyline avec des coordonnées et ajouter que polyLine à vue de carte.

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

Vous trouverez un tutoriel ici sur la façon de dessiner une polyligne sur certaines coordonnées. Edit: L'url ne semble plus valide. Vous pouvez trouver la version archivée de cette url ici.

4
répondu Abdullah Md. Zubair 2016-02-18 10:02:51
MKPolyline *polyline = [MKPolyline polylineWithCoordinates:coordinates count:self.allPins.count];
[self.mapView addOverlay:polyline];

Cochez cette http://pinkstone.co.uk/how-to-draw-an-mkpolyline-on-a-map-view/ et pour swift http://rshankar.com/how-to-add-mapview-annotation-and-draw-polyline-in-swift/

0
répondu Arvind 2016-08-10 11:03:27