Ich verwende MKMapView und habe der Karte eine Reihe von Anmerkungsstiften über einen Bereich von 5 bis 10 Kilometern hinzugefügt. Wenn ich die Anwendung starte, wird meine Karte verkleinert, um die ganze Welt anzuzeigen. Wie kann ich die Karte am besten zoomen, damit die Stifte in die Ansicht passen?
BEARBEITEN: Mein erster Gedanke wäre, MKCoordinateRegionMake zu verwenden und das Koordinatenzentrum, longitudeDelta und latitudeDelta aus meinen Anmerkungen zu berechnen. Ich bin mir ziemlich sicher, dass dies funktionieren wird, aber ich wollte nur überprüfen, ob mir etwas Offensichtliches fehlt.
Code hinzugefügt, BTW: FGLocation ist eine Klasse, die konform ist MKAnnotation
, locationFake ist eines NSMutableArray
dieser Objekte. Kommentare sind immer willkommen ....
- (MKCoordinateRegion)regionFromLocations {
CLLocationCoordinate2D upper = [[locationFake objectAtIndex:0] coordinate];
CLLocationCoordinate2D lower = [[locationFake objectAtIndex:0] coordinate];
// FIND LIMITS
for(FGLocation *eachLocation in locationFake) {
if([eachLocation coordinate].latitude > upper.latitude) upper.latitude = [eachLocation coordinate].latitude;
if([eachLocation coordinate].latitude < lower.latitude) lower.latitude = [eachLocation coordinate].latitude;
if([eachLocation coordinate].longitude > upper.longitude) upper.longitude = [eachLocation coordinate].longitude;
if([eachLocation coordinate].longitude < lower.longitude) lower.longitude = [eachLocation coordinate].longitude;
}
// FIND REGION
MKCoordinateSpan locationSpan;
locationSpan.latitudeDelta = upper.latitude - lower.latitude;
locationSpan.longitudeDelta = upper.longitude - lower.longitude;
CLLocationCoordinate2D locationCenter;
locationCenter.latitude = (upper.latitude + lower.latitude) / 2;
locationCenter.longitude = (upper.longitude + lower.longitude) / 2;
MKCoordinateRegion region = MKCoordinateRegionMake(locationCenter, locationSpan);
return region;
}