sto risparmiando mappa regione in default utente quando la mia applicazione per iPhone si sta chiudendo in questo modo:MKMapView erroneamente visualizzata salvato regione
MKCoordinateRegion region = mapView.region;
[[NSUserDefaults standardUserDefaults] setDouble:region.center.latitude forKey:@"map.location.center.latitude"];
[[NSUserDefaults standardUserDefaults] setDouble:region.center.longitude forKey:@"map.location.center.longitude"];
[[NSUserDefaults standardUserDefaults] setDouble:region.span.latitudeDelta forKey:@"map.location.span.latitude"];
[[NSUserDefaults standardUserDefaults] setDouble:region.span.longitudeDelta forKey:@"map.location.span.longitude"];
Quando app lancia ancora una volta, Ш leggere quei valori indietro allo stesso modo, in modo che il utente può vedere esattamente la stessa guarda la mappa come è stato l'ultima volta:
MKCoordinateRegion region;
region.center.latitude = [[NSUserDefaults standardUserDefaults] doubleForKey:@"map.location.center.latitude"];
region.center.longitude = [[NSUserDefaults standardUserDefaults] doubleForKey:@"map.location.center.longitude"];
region.span.latitudeDelta = [[NSUserDefaults standardUserDefaults] doubleForKey:@"map.location.span.latitude"];
region.span.longitudeDelta = [[NSUserDefaults standardUserDefaults] doubleForKey:@"map.location.span.longitude"];
NSLog([NSString stringWithFormat:@"Region read : %f %f %f %f", region.center.latitude, region.center.longitude, region.span.latitudeDelta, region.span.longitudeDelta]);
[mapView setRegion:region];
NSLog([NSString stringWithFormat:@"Region on map: %f %f %f %f", mapView.region.center.latitude, mapView.region.center.longitude, mapView.region.span.latitudeDelta, mapView.region.span.longitudeDelta]);
la regione che ho letto da impostazioni predefinite dell'utente è (non a caso) esattamente la stessa di quando è stato salvato. Nota che ciò che viene salvato viene direttamente dalla mappa, quindi non viene trasformato in alcun modo. Lo rimetto sulla mappa con il metodo setRegion:
, ma poi è diverso!
risultati Esempio:
Region read : 50.241110 8.891555 0.035683 0.042915<br>
Region on map: 50.241057 8.891544 0.050499 0.054932
Qualcuno sa perché questo accade?
Ho trovato una soluzione per ottenere esattamente la regione della mappa che desideri: vedere il mio post su http://stackoverflow.com/questions/3612007/mkmapview-setregion-snaps-to-predefined-zoom-levels/7935 – AlexWien