J'ai plusieurs annotations que je veux ajouter à mon MKMapView (il pourrait 0-n éléments, où n est généralement autour de 5). Je peux bien ajouter les annotations, mais je souhaite redimensionner la carte pour qu'elle corresponde à toutes les annotations à l'écran à la fois, et je ne sais pas comment procéder.
J'ai regardé -regionThatFits:
mais je ne sais pas trop quoi en faire. Je publierai du code pour montrer ce que j'ai 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 le faire. Sinon, quel serait le meilleur endroit? -viewDidLoad
?
Merci d'avance.