目标
我需要我的应用程序放大或缩小一个MKMapView。
码
我想要动画化altitude of a MKMapCamera的值。不过,这不能放大或缩小地图。
let mapCamera = MKMapCamera()
mapCamera.altitude = 1000000
mapView.camera = mapCamera
UIView.animateWithDuration(10, delay: 0., options: UIViewAnimationOptions.CurveLinear, animations: {
mapCamera.altitude = 6000000
}, completion: {(finished: Bool) in
})
mapView.camera = mapCamera问题
如何放大或缩小MKMapView?还有其他办法吗?
发布于 2015-04-19 16:31:44
下面是一个基于kevins https://stackoverflow.com/a/20129379/1488696的扩展
有了它,你就可以按需要放大和缩小
extension MKMapView {
// delta is the zoom factor
// 2 will zoom out x2
// .5 will zoom in by x2
func setZoomByDelta(delta: Double, animated: Bool) {
var _region = region;
var _span = region.span;
_span.latitudeDelta *= delta;
_span.longitudeDelta *= delta;
_region.span = _span;
setRegion(_region, animated: animated)
}
}像这样使用它:myMapView.setZoomByDelta(0.5, animated: true)
MKMapCamera用于三维地图。所以这很可能不是你想要的
苹果文档
MKMapCamera对象描述用于定义地图外观的虚拟摄像机。照相机对象在地图表面上创建一个虚拟视点,并影响地图如何呈现其瓷砖和其他内容。您可以使用照相机对象来指定相机在地图上的位置、与摄像机的观看方向相对应的罗盘航向、相机相对于地图垂直的高度以及相机在地图上方的高度。这些因素让你创建了一个地图视图,它不仅是平面的,而且提供了更像3D的体验。“
发布于 2015-04-19 15:32:16
使用setRegion:animated:方法。它接受一个MKCoordinateRegion参数。该区域包括一个跨度,它确定屏幕上所显示的南北纬度范围。
https://stackoverflow.com/questions/29731857
复制相似问题