Почему мой вид карты увеличивается при добавлении аннотаций? - PullRequest
0 голосов
/ 20 мая 2018

У меня есть MKMapView, который я настраиваю с помощью:

static let STARTING_MAP_RANGE: Double = 1000  // meters
. . .
let region: MKCoordinateRegion = MKCoordinateRegionMakeWithDistance(location,
                                                                    MapViewController.STARTING_MAP_RANGE,
                                                                    MapViewController.STARTING_MAP_RANGE)

mapView.setRegion(region, animated: true)

Я добавляю аннотацию для текущего местоположения, и все выглядит нормально.Когда я добавляю аннотацию для других точек в видимой области, MKMapView увеличивает минимальную область, необходимую для отображения всех аннотаций.

Странная вещь заключается в том, что я пытался выяснить, где это происходит, печатаяиз нижнего левого и верхнего правого значения широты и долготы, например:

private func printMapRegion(caller: String)
{
    let mapRect = mapView.visibleMapRect;
    let bottomLeft = MKCoordinateForMapPoint(MKMapPointMake(mapRect.origin.x, MKMapRectGetMaxY(mapRect)))
    let topRight = MKCoordinateForMapPoint(MKMapPointMake(MKMapRectGetMaxX(mapRect), mapRect.origin.y))

    print("\(caller):  (\(bottomLeft.latitude),\(bottomLeft.longitude)) -- (\(topRight.latitude),\(topRight.longitude))")
}

Когда я запускаю это до и после установки аннотаций, я получаю одинаковые значения, несмотря на увеличение масштаба карты на экране (оба всимулятор и мой iPhone).

Я добавил кнопку обновления, чтобы сбросить карту.Он работает так же, как уменьшение масштаба карты, но также сообщает, что нижняя левая и верхняя правая координаты одинаковы до и после увеличения.

Что-то не так с моим пониманием visibleMapRect?

1 Ответ

0 голосов
/ 20 мая 2018

Я обнаружил, что причина масштабирования заключается в том, что я добавлял аннотации, подобные этому:

    mapView.removeAnnotations(mapView.annotations)
    mapView.addAnnotations(annotations)
    mapView.showAnnotations(mapView.annotations, animated: true)

Удаление вызова showAnnotations устранило проблему.Мне все еще интересно, почему visibleMapRect сообщает о тех же ограничивающих координатах после видимого увеличения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...