Проблема в том, что когда я добавляю полилинию к MapView ... Полилиния была показана со случайной задержкой. Иногда это занимает 1 сек, иногда 5 сек
Это функция, которая рисует полилинию.
- (void) setRoutePoints:(NSArray*)locations {
CLLocationCoordinate2D *pointsCoOrds = (CLLocationCoordinate2D*)malloc(sizeof(CLLocationCoordinate2D) * [locations count]);
NSUInteger i, count = [locations count];
for (i = 0; i < count; i++) {
CLLocation* obj = [locations objectAtIndex:i];
pointsCoOrds[i] = CLLocationCoordinate2DMake(obj.coordinate.latitude, obj.coordinate.longitude);
}
[mapView addOverlay:[MKPolyline polylineWithCoordinates:pointsCoOrds count:locations.count]];
free(pointsCoOrds);
}
Необходимая функция обратного вызова (см. Apple Docs) также правильна
- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id)overlay {
if ([overlay isKindOfClass:[MKPolyline class]]) {
MKPolylineView* routeLineView = [[MKPolylineView alloc] initWithPolyline:overlay];
routeLineView.fillColor = [UIColor colorWithRed:0.0f green:0.0f blue:1.0f alpha:0.5f];
routeLineView.strokeColor = [UIColor colorWithRed:0.0f green:0.0f blue:1.0f alpha:0.5f];
routeLineView.lineWidth = 8;
return routeLineView;
}
return nil;
}
И вот как я вызываю функцию для добавления полилинии
[self setRoutePoints:steps];
Единственная проблема заключается в том, что задержка, с которой ломаная рисуется на карте, является случайной.