Поворот и масштабирование карты в двух точках - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть две точки на карте (MapKit), и теперь я хочу расположить карту так, чтобы обе точки были видны и выровнены (одна находится прямо над другой).Я могу расположить карту, используя setVisibleMapRect(rect, edgePadding: padding, animated: true), но я не уверен, как сделать поворот в том же вызове.

Чтобы проиллюстрировать немного дальше, когда точки на карте расположены рядом, я получаюэтот результат при первом использовании setVisibleMapRect(rect, edgePadding: padding, animated: true) и последующем повороте путем установки mapView.camera.heading.

result 1

Конечный результат, который мне нужен, таков:

result 2

Код, который я использую для установки прямоугольника карты:

func centerMap() {
    let rect = MKMapRect(coordinates: [currentHole!.teeCoordinate, currentHole!.greenCoordinate])
    let padding = UIEdgeInsets(top: 0.0, left: 0.0, bottom: 0.0, right: 0.0)
    mapView.setVisibleMapRect(rect, edgePadding: padding, animated: true)
}

extension MKMapRect {
    init(coordinates: [CLLocationCoordinate2D]) {
        let points = coordinates.map { MKMapPoint.init($0) }
        let rects = points.map { MKMapRect(origin: $0, size: MKMapSize(width: 0, height: 0)) }
        self = rects.reduce(MKMapRect.null) { result, rect in
            return result.union(rect)
        }
    }
}

Есть идеи?

1 Ответ

0 голосов
/ 27 сентября 2018

Вместо этого я использовал MKMapCamera.

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