Estoy ahorrando región del mapa en valores predeterminados del usuario cuando mi aplicación para el iPhone se está cerrando de esta manera:MKMapView Mostrar Guardados incorrectamente región
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"];
Cuando lanza aplicación de nuevo, Ш leer los valores de nuevo de la misma manera, por lo que la usuario puede ver exactamente lo mismo ver mapa ya que fue la última vez:
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 región que he leído de usuario por defecto es (como es lógico) es exactamente la misma que cuando se guardó. Tenga en cuenta que lo que se guarda proviene directamente del mapa, por lo que no se transforma de ninguna manera. Lo configuro nuevamente en el mapa con el método setRegion:
, ¡pero luego es diferente!
resultados Ejemplo:
Region read : 50.241110 8.891555 0.035683 0.042915<br>
Region on map: 50.241057 8.891544 0.050499 0.054932
¿Alguien sabe por qué sucede esto?
Encontré una solución para obtener exactamente la región del mapa que desea: Ver mi publicación en http://stackoverflow.com/questions/3612007/mkmapview-setregion-snaps-to-predefined-zoom-levels/7935 – AlexWien