- , . MKCoordinateRegion, CLLocations. MKMapView setRegion: :
+ (MKCoordinateRegion) getRegionThatFitsLocations:(NSArray *)locations {
CLLocationDegrees minLatitude = 90;
CLLocationDegrees maxLatitude = -90;
CLLocationDegrees minLongitude = 180;
CLLocationDegrees maxLongitude = -180;
for (CLLocation *location in locations) {
if (location.coordinate.latitude < minLatitude) {
minLatitude = location.coordinate.latitude;
}
if (location.coordinate.latitude > maxLatitude) {
maxLatitude = location.coordinate.latitude;
}
if (location.coordinate.longitude < minLongitude) {
minLongitude = location.coordinate.longitude;
}
if (location.coordinate.longitude > maxLongitude) {
maxLongitude = location.coordinate.longitude;
}
}
MKCoordinateSpan span;
CLLocationCoordinate2D center;
if ([locations count] > 1) {
span = MKCoordinateSpanMake(maxLatitude - minLatitude, maxLongitude - minLongitude);
center.latitude = minLatitude + span.latitudeDelta / 2;
center.longitude = minLongitude + span.longitudeDelta / 2;
} else {
span = MKCoordinateSpanMake(0.01, 0.01);
center.latitude = minLatitude;
center.longitude = minLongitude;
}
return MKCoordinateRegionMake(center, span);
}
, , , MKMapView Core Location, , . , , MKMapView , . . , , , , , .