У меня есть следующий код, с помощью которого я пытаюсь нарисовать ломаную линию между набором координат (которые являются правильными, поскольку я также использую их для добавления булавок на карту, и они работают нормально).
Я вызываю метод рисования, чтобы инициировать рисование следующим образом (массив в вызове метода содержит необходимые координаты):
[self drawRoute:[[transportData objectForKey:@"19"] objectForKey:@"stops"]];
Это фактический метод, который должен рисовать линию на карте (selectedRoute является объектом MKPolyline):
- (void)drawRoute:(NSArray *)routePointsArray {
if (selectedRoute) {
[mapView removeOverlay:selectedRoute];
selectedRoute = nil;
}
CLLocationCoordinate2D routeCoordinates[routePointsArray.count];
for (int i = 0; i < routePointsArray.count; i++) {
float latitude = [[[routePointsArray objectAtIndex:i] objectForKey:@"lat"] floatValue];
float longitude = [[[routePointsArray objectAtIndex:i] objectForKey:@"lon"] floatValue];
CLLocationCoordinate2D routePoint = CLLocationCoordinate2DMake(latitude, longitude);
routeCoordinates[i] = routePoint;
}
selectedRoute = [MKPolyline polylineWithCoordinates:routeCoordinates count:routePointsArray.count];
[mapView addOverlay:selectedRoute];
[mapView setVisibleMapRect:[selectedRoute boundingMapRect]];
}
А это мой делегат:
- (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id<MKOverlay>)overlay
{
MKPolylineRenderer *routeLineView = [[MKPolylineRenderer alloc] initWithPolyline:selectedRoute];
if(overlay == selectedRoute)
{
if(nil == routeLineView)
{
routeLineView = [[MKPolylineRenderer alloc] initWithPolyline:selectedRoute];
routeLineView.fillColor = [UIColor redColor];
routeLineView.strokeColor = [UIColor redColor];
routeLineView.lineWidth = 5;
}
return routeLineView;
}
return nil;
}
Я как бы сузил его до того, что массив routeCoordinates не заполняется координатами, но я не понимаю, почему.
Кроме того, если вы обнаружите какие-либо ошибки в коде, я был бы очень признателен, если бы вы могли указать мне на них (возможно, с помощью решения), так как я только изучаю эту часть iOS и могу использовать любую помощь, которую смогу получить.