I had a problem installing all my annotations on the screen ... sometimes it shows all the annotations, but sometimes other applications scale between the two annotations so that none of them are visible ... I want the application to always match the annotation area but not increased between them ... what am I doing wrong?
if ([mapView.annotations count] == 2) { CLLocationCoordinate2D SouthWest = location; CLLocationCoordinate2D NorthEast = savedPosition; NorthEast.latitude = MAX(NorthEast.latitude, savedPosition.latitude); NorthEast.longitude = MAX(NorthEast.longitude, savedPosition.longitude); SouthWest.latitude = MIN(SouthWest.latitude, location.latitude); SouthWest.longitude = MIN(SouthWest.longitude, location.longitude); CLLocation *locSouthWest = [[CLLocation alloc] initWithLatitude:SouthWest.latitude longitude:SouthWest.longitude]; CLLocation *locNorthEast = [[CLLocation alloc] initWithLatitude:NorthEast.latitude longitude:NorthEast.longitude]; CLLocationDistance meter = [locSouthWest distanceFromLocation:locNorthEast]; MKCoordinateRegion region; region.span.latitudeDelta = meter / 111319.5; region.span.longitudeDelta = 0.0; region.center.latitude = (SouthWest.latitude + NorthEast.latitude) / 2.0; region.center.longitude = (SouthWest.longitude + NorthEast.longitude) / 2.0; region = [mapView regionThatFits:region]; [mapView setRegion:region animated:YES]; [locSouthWest release]; [locNorthEast release]; }
Any ideas?
Thanks!!
source share