MKMapView:缩放到默认“国家/地区级别”

时间:2012-12-31 13:39:47

标签: iphone ios mkmapview core-location

将MKMapView放入UIViewController并将其设置为Satellite视图时,地图会进行缩放和调整,以显示用户当前所在的整个国家/地区:例如美国,如下所示。

当用户正在缩放地图或我以编程方式缩放地图时,它似乎无法恢复此默认缩放级别。

当然我可以找到这个默认缩放的坐标以缩放到那个设置,但实际上我需要为每个不值得的国家做到这一点。

有人知道如何解决这个问题吗?

MKMapView with default zoom level showing the United States

2 个答案:

答案 0 :(得分:5)

要做到这一点,它需要两种类型的信息。所选国家/地区的中心坐标以及在地图上为region.span设置的正确值。它可能可以从Apple Maps数据库访问该数据。我不知道这是向我们公开的。但是如果你在网上搜索可能会给你这两个值,那么互联网上还有其他的地理编码数据库。

如果找到符合您需要的产品,请使用以下方法在地图上设置:

myMKMapView.region.center = // Center coordinates of country
myMKMapView.region.span = // A value large enough to enclose the country.

答案 1 :(得分:-1)

您只需在viewDidAppear上保存默认区域,然后在需要时使用它:}

class MyController: UIViewController {
    @IBOutlet weak var mapView: MKMapView!
    var defaultRegion: MKCoordinateRegion?

    override func viewDidAppear(animated: Bool) {
        defaultRegion = mapView.region
    }

    func showDefaultMapArea() {
        if let region = defaultRegion {
            mapView.setRegion(region, animated: true)
        }
    }