Tengo varias anotaciones que quiero agregar a mi MKMapView (podría incluir elementos 0-n, donde n es generalmente alrededor de 5). Puedo agregar las anotaciones bien, pero quiero cambiar el tamaño del mapa para que se ajuste a todas las anotaciones en pantalla a la vez, y no estoy seguro de cómo hacerlo.
Lo he estado mirando -regionThatFits:
pero no estoy muy seguro de qué hacer con él. Publicaré un código para mostrar lo que tengo hasta ahora. Creo que esta debería ser una tarea sencilla en general, pero hasta ahora me siento un poco abrumado con MapKit.
- (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];
}
Fíjate, todo esto sucede cuando recibo una actualización de ubicación ... No sé si ese es un lugar apropiado para hacer esto. Si no es así, ¿cuál sería un lugar mejor? -viewDidLoad
?
Gracias por adelantado.