2013-09-16 2 views
0

Я хочу установить прямоугольник поверх трассы полилинии на моей карте.Как установить 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?

спасибо!

ответ

0

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

self.mapView.visibleMapRect = route.boundingMapRect; 

или

[self.mapView setVisibleMapRect:route.boundingMapRect animated:YES]; 
+0

да, метод работайте правильно, но эффект не тот, который я ожидал, он не центрирует карту в центре маршрута. любое предложение? –

0

я решил с этим датчиком строки кода:

MKMapRect test = MKMapRectInset(route.boundingMapRect, -route.boundingMapRect.size.height/2, -route.boundingMapRect.size.width/2); 
    [self.mapView setVisibleMapRect:test animated:YES]; 
Смежные вопросы