Я провел небольшой тест как на 4.3, так и на 5.0, и кажется, что преобразование неверно
UIImageView *imageView = [[UIImageView alloc] initWithImage:[[UIImage imageNamed:@"heart.png"] imageByScalingProportionallyToSize:CGSizeMake(100, 100)]];
imageView.frame = CGRectMake(0, 0, 100, 100);
imageView.center = [mapView convertCoordinate:mapView.centerCoordinate toPointToView:canvasView];
[canvasView addSubview:imageView];
MKCoordinateRegion region = [mapView convertRect:imageView.frame toRegionFromView:canvasView];
MKMapRect maprect;
for (int i = 0; i < 5; i ++)
{
maprect = [mapView mapRectForCoordinateRegion:region];
NSLog(@"%f, %f, %f, %f", region.center.latitude, region.center.longitude, region.span.latitudeDelta, region.span.longitudeDelta);
NSLog(@"%f, %f, %f, %f", maprect.origin.x, maprect.origin.y, maprect.size.width, maprect.size.height);
region = MKCoordinateRegionForMapRect([mapView mapRectForCoordinateRegion:region]);
}
14,718256, -40,078125, 63,837150, 70,312500
78118912,000000, 94811514.406252, 52428800.000000, 52428799.999997
17.416993, -40.078125, 63.837150, 70.312500
78118912,000000, 91803983.982924, 52428800.000000, 53344239.567355
20,649080, -40,078125, 63,837150, 70,312500
78118912,000000, 87976363.978412, 52428800.000000, 54699220.734715
24,548345, -40,078125, 63,837150, 70,312500
78118912,000000, 82962597.189840, 52428800.000000, 56765991.576236
29,305644, -40,078125, 63,837150, 70,312500
78118912,000000, 76093086.024249, 52428800.000000, 60073659,997575