title: MKMapView zoom to fit annotations while locking center
body: <p>I'm trying to zoom to fit annotations on a map while locking the center and providing some insets.</p>
  
  <pre><code>- (void)fitAnnotations:(NSArray *)annotations edgeInsets:(UIEdgeInsets)insets
  {
      CLLocationCoordinate2D originalCenter = self.centerCoordinate;
      MKMapRect mapRect = MKMapRectNull;
  
      for (id&lt;MKAnnotation&gt; annotation in annotations) {
          MKMapPoint p = MKMapPointForCoordinate([annotation coordinate]);
          mapRect = MKMapRectUnion(mapRect, MKMapRectMake(p.x, p.y, 0, 0));
      }
  
      mapRect = [self mapRectThatFits:mapRect edgePadding:insets];
      MKCoordinateRegion mapRegion = MKCoordinateRegionForMapRect(mapRect);
  
      // we now try to go back to the original center, while increasing the span by neccessary amount
      MKCoordinateSpan centeringDelta = MKCoordinateSpanMake(fabs(mapRegion.center.latitude - originalCenter.latitude), fabs(mapRegion.center.longitude - originalCenter.longitude));
      mapRegion.center = originalCenter;
      mapRegion.span.latitudeDelta += centeringDelta.latitudeDelta * 2.0;
      mapRegion.span.longitudeDelta += centeringDelta.longitudeDelta * 2.0;
      mapRegion = [self regionThatFits:mapRegion];
      [self setRegion:mapRegion animated:YES];
  }
  </code></pre>
  
  <p>The first part of the code here works as expected: it zooms to fit while respecting the insets. However, it shifts the center.</p>
  
  <p>I try to re-adjust the center after that, but it fails. I'm not sure if my math on the re-centering is correct.</p>