NSArray *annotations = mapView.annotations;
// [self.manager.mapView showAnnotations:annotations edgePadding:UIEdgeInsetsMake(100, 20, 54,81) animated:animated];
NSInteger count = [mapView.annotations count];
if ( count == 0) { return; }
MAMapPoint points[count];
for( int i=0; i<count; i++ )
{
CLLocationCoordinate2D coordinate = [(id <MAAnnotation>)[annotations objectAtIndex:i] coordinate];
points[i] = MAMapPointForCoordinate(coordinate);
}
MAMapRect mapRect = [[MAPolygon polygonWithPoints:points count:count] boundingMapRect];
// 因为,中间的一个大头针居中显示,所以这里的size要减一半.所以乘以二
// mapRect.size.width = mapRect.size.width * 2;
// mapRect.size.height = mapRect.size.height * 2;
mapRect.size.width = mapRect.size.width;
mapRect.size.height = mapRect.size.height;
MACoordinateRegion region = MACoordinateRegionForMapRect(mapRect);
region.span.latitudeDelta *= CW_ANNOTATION_REGION_PAD_FACTOR;
region.span.longitudeDelta *= CW_ANNOTATION_REGION_PAD_FACTOR;
if( region.span.latitudeDelta > CW_MAX_DEGREES_ARC ) { region.span.latitudeDelta = CW_MAX_DEGREES_ARC; }
if( region.span.longitudeDelta > CW_MAX_DEGREES_ARC ){ region.span.longitudeDelta = CW_MAX_DEGREES_ARC; }
if( region.span.latitudeDelta < CW_MINIMUM_ZOOM_ARC ) { region.span.latitudeDelta = CW_MINIMUM_ZOOM_ARC; }
if( region.span.longitudeDelta < CW_MINIMUM_ZOOM_ARC ) { region.span.longitudeDelta = CW_MINIMUM_ZOOM_ARC; }
if( count == 1 )
{
region.span.latitudeDelta = CW_MINIMUM_ZOOM_ARC;
region.span.longitudeDelta = CW_MINIMUM_ZOOM_ARC;
}
// region.center = self.location1;
[mapView setRegion:region animated:animated];