Я работаю над компонентом с помощью MKMapView. Карта должна увеличиваться вдвое при нажатии на аннотацию. Для этого я стараюсь вдвое уменьшить диапазон области карты, но иногда это работает некорректно: Вот мир кода:
MKCoordinateSpan newSpan = mapView.region.span;
NSLog(@"old: %f, %f", newSpan.latitudeDelta, newSpan.longitudeDelta);
newSpan = MKCoordinateSpanMake(newSpan.latitudeDelta / 2.0, newSpan.longitudeDelta / 2.0);
NSLog(@"new: %f, %f", newSpan.latitudeDelta, newSpan.longitudeDelta);
MKCoordinateRegion region = [mapView regionThatFits:MKCoordinateRegionMake(centerCoordinate, newSpan)];
NSLog(@"!!!! (%f, %f) (%f, %f)", region.center.latitude, region.center.longitude, region.span.latitudeDelta, region.span.longitudeDelta);
Беру текущий промежуток, уменьшаю его и перехожу к regionThatFits. Иногда результаты бывают:
old: 0.609257, 0.914612
new: 0.304629, 0.457306
!!!! (55.805472, 37.579371) (0.608178, 0.914612)
regionThatFits удваивает переданный диапазон. Таким образом, визуальный эффект - это центрирование аннотации вида без масштабирования.
Какие-либо предложения?