iOS MapView не обновляется до указанного диапазона

В моем приложении для iOS есть карта, которая не устанавливает видимую область, где я ее указываю.

- (void)mapView:(MKMapView *)aMapView didUpdateUserLocation:(MKUserLocation*)aUserLocation    
{
    MKCoordinateSpan span;
    span.latitudeDelta = .011932;
    span.longitudeDelta = 0.011242;
    MKCoordinateRegion region;
    region.center = self.mapView.userLocation.coordinate;
    region.span = span;
    [aMapView setRegion:region animated:YES];
}

Это мой код, и вы предполагаете, что он будет работать, он довольно простой и все. Тем не менее, он устанавливает видимую область немного, но заметную область выше того, что я хочу. Я распечатал значения дельта диапазона в mapView:regionDidChangeAnimated и ценности, которые я получил, являются:

Span: 0.014576, 0.013733

Это не то, что я установил.

Есть мысли о том, почему? Больше всего я действительно хочу понять, почему это происходит и является ли это продуктом использования Apple Maps или какой-то странной вещью, которую я делаю неправильно. Upvote, если вы не возражаете, чтобы другие люди, которые имеют эту проблему, могут получить решение.

2 ответа

Решение

Это было проблемой с MKMapView навсегда. Установка региона не устанавливает точный регион, в который вы переходите.

Так как вы не меняете форму вида карты, независимо от того, какой промежуток вы даете, он должен соответствовать соотношению. Например, он не может получить целевой регион, если вы сказали, что хотите увидеть что-то в 100 раз выше его ширины. Кроме того, он привязывается к набору предпочтительных уровней масштабирования, где карта выглядит лучше, я думаю. Таким образом, ваш регион полностью виден, и при необходимости его можно заполнить.

Другие вопросы по тегам