как установить mapRect для mkOverlay?

Я хочу установить прямоугольник поверх полилинейного маршрута на моей карте.

это то, что именно я пытаюсь сделать:

- (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id<MKOverlay>)overlay
{
    if ([overlay isKindOfClass:[MKPolyline class]]) {
        MKPolyline *route = overlay;
        MKPolylineRenderer *routeRenderer = [[MKPolylineRenderer alloc] initWithPolyline:route];
        routeRenderer.strokeColor = [[UIColor blueColor] colorWithAlphaComponent:0.7];
        routeRenderer.lineWidth = 5.0;
        [self.mapView.visibleMapRect = route.boundingMapRect];
        return routeRenderer;
    }
    else return nil;
}

у меня проблема с этой строкой кода:

[self.mapView.visibleMapRect = route.boundingMapRect];

я получаю сообщение об ошибке "Ожидаемый идентификатор". что не так с этой строкой кода? это правильный способ установить Mkrect для маршрута MKPolyline?

Благодарность!


person Max_Power89    schedule 16.09.2013    source источник


Ответы (2)


Это не то, как вы пишете Objective-C, попробуйте это

self.mapView.visibleMapRect = route.boundingMapRect;

or

[self.mapView setVisibleMapRect:route.boundingMapRect animated:YES];
person Craig    schedule 17.09.2013
comment
да, метод работает правильно, но эффект не тот, что я ожидал, он не центрирует карту в центре маршрута. любое предложение? - person Max_Power89; 17.09.2013

Я решил с помощью этой строки кода:

MKMapRect test = MKMapRectInset(route.boundingMapRect, -route.boundingMapRect.size.height/2, -route.boundingMapRect.size.width/2);
    [self.mapView setVisibleMapRect:test animated:YES];
person Max_Power89    schedule 17.09.2013