我在地图(MapKit)上有两个点,现在我想对地图进行定位,以使两个点都可见并对齐(一个点在另一个点的正上方)。我可以使用setVisibleMapRect(rect, edgePadding: padding, animated: true)
来定位地图,但不确定如何在同一通话中进行旋转。
为进一步说明,当地图上的点并排时,我首先使用setVisibleMapRect(rect, edgePadding: padding, animated: true)
然后通过设置mapView.camera.heading
旋转时会得到此结果。
我想要的最终结果是:
我用来设置地图矩形的代码是:
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)
}
}
}
有什么想法吗?
答案 0 :(得分:0)
我最终改为使用MKMapCamera。