¿Cómo networkingucir el nivel de zoom de MKMapview con la anotación?

Solo tengo una anotación en la vista de map.

Estoy usando el siguiente código para acercarme a ese pin de anotación.

- (void)zoomToFitMapAnnotations:(MKMapView *)mapView { if ([mapView.annotations count] == 0) return; CLLocationCoordinate2D topLeftCoord; topLeftCoord.latitude = -90; topLeftCoord.longitude = 180; CLLocationCoordinate2D bottomRightCoord; bottomRightCoord.latitude = 90; bottomRightCoord.longitude = -180; for(id<MKAnnotation> annotation in mapView.annotations) { topLeftCoord.longitude = fmin(topLeftCoord.longitude, annotation.coordinate.longitude); topLeftCoord.latitude = fmax(topLeftCoord.latitude, annotation.coordinate.latitude); bottomRightCoord.longitude = fmax(bottomRightCoord.longitude, annotation.coordinate.longitude); bottomRightCoord.latitude = fmin(bottomRightCoord.latitude, annotation.coordinate.latitude); } MKCoordinateRegion region; region.center.latitude = topLeftCoord.latitude - (topLeftCoord.latitude - bottomRightCoord.latitude) * 0.5; region.center.longitude = topLeftCoord.longitude + (bottomRightCoord.longitude - topLeftCoord.longitude) * 0.5; region.span.latitudeDelta = fabs(topLeftCoord.latitude - bottomRightCoord.latitude) * 0.1; region.span.longitudeDelta = fabs(bottomRightCoord.longitude - topLeftCoord.longitude) * 0.1; region = [mapView regionThatFits:region]; [mapView setRegion:region animated:YES]; } 

Pero se acerca al extremo, necesito networkingucir el nivel de zoom para que el usuario pueda ver un área alnetworkingedor de la anotación.

Intenté cambiar los valores de region.span, pero no puedo get la solución.

Cualquier sugerencia sera apreciada.

¿Estás seguro de que este código:

 region.span.latitudeDelta = fabs(topLeftCoord.latitude - bottomRightCoord.latitude) * 0.1; region.span.longitudeDelta = fabs(bottomRightCoord.longitude - topLeftCoord.longitude) * 0.1; 

no devuelve latitud / longitud = 0? Trate de codificar el span a 0.05 o algo parecido.

El código a continuación centrará su map en su position actual, puede cambiar locationManager.coordinates con sus annotation.coordinates.

 CLLocationManager *locationManager = [[CLLocationManager alloc] init]; locationManager.distanceFilter = kCLDistanceFilterNone; locationManager.desinetworkingAccuracy = kCLLocationAccuracyBest; [locationManager startUpdatingLocation]; MKCoordinateSpan span; MKCoordinateRegion region; span.latitudeDelta = 0.05; span.longitudeDelta = 0.05; location.latitude = locationManager.location.coordinate.latitude; location.longitude = locationManager.location.coordinate.longitude; NSLog(@"%f",location.latitude); region.span = span; region.center = location; [_mapVIew setRegion:region animated:YES]; 

use este código para ajustar el nivel de zoom de su map

  MKCoordinateRegion mapRegion; // set the center of the map region to the now updated map view center mapRegion.center = self.mapView.centerCoordinate; mapRegion.span.latitudeDelta = 0.1; mapRegion.span.longitudeDelta = 0.1; mapView.region=mapRegion; 

Utilicé el código siguiente para hacer zoom a la anotación,

 CLLocation *location = [[CLLocation alloc] initWithLatitude:[@"My annotation's latitude" doubleValue] longitude:[@"My annotation's longitude" doubleValue]]; MKCoordinateRegion mkr; mkr.center = location.coordinate; MKCoordinateSpan span; span.latitudeDelta = 0.0144927536; span.longitudeDelta = 0.0144927536; mkr.span = span; [mapView setRegion:mkr animated:YES]; 

Actualmente, se acerca a una milla alnetworkingedor del lat. Largo. Si quiero ampliar más o less, cambiaré el valor del latlong delta.

es decir, para 2 millas = 0.0144927536 * 2 y para 0.5 milla = 0.0144927536 / 2. Espero que sea útil para otros.