首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Swift中放大或缩小MKMapView?

如何在Swift中放大或缩小MKMapView?
EN

Stack Overflow用户
提问于 2015-04-19 15:28:31
回答 2查看 8.6K关注 0票数 0

目标

我需要我的应用程序放大或缩小一个MKMapView

我想要动画化altitude of a MKMapCamera的值。不过,这不能放大或缩小地图。

代码语言:javascript
复制
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?还有其他办法吗?

EN

回答 2

Stack Overflow用户

发布于 2015-04-19 16:31:44

下面是一个基于kevins https://stackoverflow.com/a/20129379/1488696的扩展

有了它,你就可以按需要放大和缩小

代码语言:javascript
复制
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的体验。“

票数 3
EN

Stack Overflow用户

发布于 2015-04-19 15:32:16

使用setRegion:animated:方法。它接受一个MKCoordinateRegion参数。该区域包括一个跨度,它确定屏幕上所显示的南北纬度范围。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29731857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档