MKMapView:缩放到默认的“国家级”
当把一个MKMapView放到一个UIViewController中,并将其设置为卫星视图时,地图将被放大和调整,以显示用户当前位于的整个国家:例如美国,如下所示。
当用户现在缩放地图,或者以编程方式缩放地图时,似乎无法恢复此默认缩放级别。
当然,我可以find这个默认缩放的坐标,以放大回到那个设置,但实际上我需要为每个国家这样做,这是不值得的。
有人知道如何解决这个问题吗?
要做到这一点,需要两种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) } }
- CLLocation当前位置不起作用
- 视图加载之前,位置不更新
- iOS CLLocationManager在一个单独的类
- 后台的StartUpdateLocations,didUpdatingToLocation只调用了10-20次
- 如何获得位置用户的CLLocationManager在迅速?
- iOS GPS追踪应用程序,一直运行
- 调用CLLocationManager stopUpdatingLocation后内部GPS天线是否立即停止工作?
- 计算总旅行距离iOS Swift
- MyApp“具有超出允许时间的活动断言”崩溃 – CoreLocationRegistration和CoreLocationBackgroundClient