У меня есть фрагмент кода, который определяет как наилучшие region.span.latitudeDelta
, так и region.span.longitudeDelta
. Он находит верхний левый и правый нижний и принимает разницу между лат-координатами и длинными координатами.mapkit: область, которая подходит, не отображается правильно
У меня есть проблема в том, что делает на самом деле отличается чем то, что я установил при выполнении:
region = self.regionThatFits(region)
self.setRegion(region, animated: true)
В качестве примера, если я первым выбрать пункты я хочу, чтобы сделать (скажем, из таблицы) а затем переключитесь на карту. Я получаю другой результат (визуально), чем , показывая все точек на карте , а затем выбрав тех, которые я хочу сохранить.
Даже больше, если я отображал все точки на карте, затем выберите несколько и рендер выбранного, а затем удалить фильтры и делают все, карта не то же самое, как это было, когда я начал - он показывает все точки, но он меньше (выглядит уменьшенным) по сравнению с исходным видом.
При отладке я вижу, что оба сценария генерируют одни и те же значения диапазона, но как будто рендеринг игнорирует их. С помощью отладки (выбранных точек в Великобритании):
нагрузки все точки:
region.span.latitudeDelta 7,439768
region.span.longitudeDelta 11,0
Фильтр точек :
регион.span.latitudeDelta 1.25
region.span.longitudeDelta 10,50477
Удалить фильтр:
region.span.latitudeDelta 7,439768
region.span.longitudeDelta 11,0
Я попытался повторно центрирования карты на фиксированную координату перед повторной обработкой (а не только на viewDidLoad), но это не имело никакого значения.
Я хотел бы подчеркнуть, что карта не выполняет масштабирование при каждом выполнении указанной последовательности. Это вроде как один раз, и все.
Есть ли очевидный шаг, который мне не хватает? Скрытый булев, который мне нужно установить? Что-то другое?
Я также попытался изменить от regionThatFits к
regionToRender = MKCoordinateRegionMake(region.center, region.span)
И я попробовал следующее тоже:
func mapView(mapView: MKMapView, regionDidChangeAnimated animated: Bool) {
self.mapView.region = mapView.region
}
Независимо от того, что я делаю, если я применяю аннотаций фильтр, когда я уже на Карта выглядит так, как если бы фактический пробег был увеличен/удвоен (или, как если бы у него была принудительная рамка вокруг краев карты), чтобы карта выглядела так, как если бы она была уменьшена, несмотря на то, что результат отладки отображается иначе ...
Ниже представлены два изображения из разных сценариев. Любые советы будут высоко оценены.
Спасибо!