如何为mkOverlay设置mapRect?

时间:2013-09-16 21:12:19

标签: ios objective-c mapkit mkpolyline mkmaprect

我想在地图上的折线路线上设置一个矩形。

这正是我想要做的:

- (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];

我收到“预期标识符”错误。这行代码有什么问题? 是为MKPolyline路线设置Mkrect的正确方法吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

这不是你写Objective-C的方式,试试这个

self.mapView.visibleMapRect = route.boundingMapRect;

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

答案 1 :(得分:0)

我用这两行代码解决了:

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