当将 MKMapView 放入 UIViewController 并将其设置为卫星视图时,地图会缩放并调整以显示用户当前所在的整个国家:例如美国,如下所示。
当用户现在正在缩放地图或我正在以编程方式缩放地图时,它似乎无法恢复此默认缩放级别。
当然,我可以找出这个默认缩放的坐标以便缩放回那个设置,但实际上我需要为每个国家都这样做,这并不值得。
有人知道如何解决这个问题吗?
当将 MKMapView 放入 UIViewController 并将其设置为卫星视图时,地图会缩放并调整以显示用户当前所在的整个国家:例如美国,如下所示。
当用户现在正在缩放地图或我正在以编程方式缩放地图时,它似乎无法恢复此默认缩放级别。
当然,我可以找出这个默认缩放的坐标以便缩放回那个设置,但实际上我需要为每个国家都这样做,这并不值得。
有人知道如何解决这个问题吗?
为此,它需要两种类型的信息。所选国家/地区的中心坐标以及要在地图上为 region.span 设置的正确值。它可能可以访问 Apple Maps 数据库中的数据。我不知道这会向我们公开。但是,如果您四处搜索,互联网上还有其他地理编码数据库可能会为您提供这两个值。
如果你找到一个有你想要的,然后你在地图上设置它使用:
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)
}
}