MKMapView:缩放到默认的“国家级”

当把一个MKMapView放到一个UIViewController中,并将其设置为卫星视图时,地图将被放大和调整,以显示用户当前位于的整个国家:例如美国,如下所示。

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

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

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

MKMapView的默认缩放级别显示美国

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

如果你find一个你想要的东西,那么你在地图上使用:

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

您可以只保存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) } }