Ho diverse annotazioni che voglio aggiungere al mio MKMapView (potrebbe 0-n elementi, dove n è generalmente intorno a 5). Posso aggiungere le annotazioni bene, ma voglio ridimensionare la mappa per adattarla contemporaneamente a tutte le annotazioni sullo schermo e non sono sicuro di come farlo.
Ho guardato -regionThatFits:
ma non sono abbastanza sicuro di cosa farne. Inserirò del codice per mostrare quello che ho ottenuto finora. Penso che questo dovrebbe essere un compito generalmente semplice, ma finora mi sento un po 'sopraffatto da 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];
}
Nota, tutto questo accade quando ricevo un aggiornamento sulla posizione ... Non so se sia un posto appropriato per farlo. In caso contrario, dove sarebbe un posto migliore? -viewDidLoad
?
Grazie in anticipo.