J'ai plusieurs annotations que je veux ajouter à mon MKMapView (il peut contenir 0-n éléments, où n est généralement autour de 5). Je peux ajouter les annotations sans problème, mais je veux redimensionner la carte pour faire tenir toutes les annotations à l'écran en même temps, et je ne sais pas comment faire.
J'ai regardé -regionThatFits:
mais je ne sais pas trop quoi en faire. Je vais poster un peu de code pour montrer ce que j'ai fait jusqu'à présent. Je pense que cela devrait être une tâche généralement simple, mais je me sens un peu dépassé par MapKit jusqu'à présent.
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation{
location = newLocation.coordinate;
//One location is obtained.. just zoom to that location
MKCoordinateRegion region;
region.center = location;
//Set Zoom level using Span
MKCoordinateSpan span;
span.latitudeDelta = 0.015;
span.longitudeDelta = 0.015;
region.span = span;
// Set the region here... but I want this to be a dynamic size
// Obviously this should be set after I've added my annotations
[mapView setRegion:region animated:YES];
// Test data, using these as annotations for now
NSArray *arr = [NSArray arrayWithObjects:@"one", @"two", @"three", @"four", nil];
float ex = 0.01;
for (NSString *s in arr) {
JBAnnotation *placemark = [[JBAnnotation alloc] initWithLat:(location.latitude + ex) lon:location.longitude];
[mapView addAnnotation:placemark];
ex = ex + 0.005;
}
// What do I do here?
[mapView setRegion:[mapView regionThatFits:region] animated:YES];
}
Remarquez, tout cela se produit lorsque je reçois une mise à jour de l'emplacement... Je ne sais pas si c'est un endroit approprié pour faire ça. Si non, où serait un meilleur endroit ? -viewDidLoad
?
Merci d'avance.