两点旋转和缩放地图视图

时间:2018-09-24 18:32:29

标签: ios mapkit

我在地图(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 :(得分:0)

我最终改为使用MKMapCamera。