2014-05-03 122 views

回答

4

您可以使用MKMapViewcenterCoordinateregion属性,然后通过提取四个角创建MKPolygon覆盖,如下面的代码:

vertex[0]=CLLocationCoordinate2DMake(map.centerCoordinate.latitude+map.region.span.latitudeDelta/2.,map.centerCoordinate.longitude-map.region.span.longitudeDelta/2.); 
    vertex[1]=CLLocationCoordinate2DMake(map.centerCoordinate.latitude+map.region.span.latitudeDelta/2.,map.centerCoordinate.longitude+map.region.span.longitudeDelta/2.); 
    vertex[2]=CLLocationCoordinate2DMake(map.centerCoordinate.latitude-map.region.span.latitudeDelta/2.,map.centerCoordinate.longitude+map.region.span.longitudeDelta/2.); 
    vertex[3]=CLLocationCoordinate2DMake(map.centerCoordinate.latitude-map.region.span.latitudeDelta/2.,map.centerCoordinate.longitude-map.region.span.longitudeDelta/2.); 
    MKPolygon *square = [MKPolygon polygonWithCoordinates:vertex count:4]; 

然后添加多边形作为覆盖:

[map addOverlay:square]

最后,在你的mapView:rendererForOverlay:定义你的平方基于多边形渲染的叠加:

- (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id)overlay { 
    if([overlay isKindOfClass:[MKPolygon class]]) { 
     MKPolygonRenderer *renderer = [[MKPolygonRenderer alloc] initWithPolygon:(MKPolygon *)overlay]; 
     renderer.fillColor = [[UIColor redColor] colorWithAlphaComponent:0.25]; 
     return renderer; 
    } else { 
     return nil; 
    }  
} 
+0

你不知道你帮了我多少!非常感谢!对此,我真的非常感激! –