Как нарисовать MKPolyline в 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];
}

где «карта» — это экземпляр MKMapView, а путь — массив, представляющий уже декодированный набор точек .

Я думал, что со строкой [map addOverlay:polyLine];она будет нарисована. Я видел на некоторых страницах этот метод:

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

    return polylineView;
}

Является ли polylineView тем, что на самом деле нарисовано на карте? Я также пытался передать MKPolyline (из метода выше) в аргумент « overlay» этого последнего метода, но выдает исключение.

Я думаю, что близок, но я не знаю, что теперь делать.

Пожалуйста, помогите! Заранее большое спасибо.

28
задан David 15 April 2017 в 06:12
поделиться