3

MKMapView を UIViewController に配置してサテライト ビューに設定すると、マップがズームされ、ユーザーが現在いる国全体が表示されるように調整されます。たとえば、以下に示すように米国です。

ユーザーがマップをズームしている場合、またはプログラムでマップをズームしている場合、このデフォルトのズーム レベルを復元できないようです。

もちろん、その設定にズームバックするために、このデフォルトのズームの座標を見つけることができましたが、実際には、実際には価値のない国ごとにそれを行う必要があります.

誰かがこの問題を解決する方法を知っていますか?

米国を示すデフォルトのズーム レベルの MKMapView

4

2 に答える 2

5

そのためには、2 種類の情報が必要です。選択した国の中心座標と、地図上の region.span に設定する正しい値。Apple Maps データベースからそのデータにアクセスできる可能性があります。それが私たちに公開されていることを私は知りません。しかし、インターネット上には他のジオコーディング データベースがあり、検索すると、これら 2 つの値が得られる可能性があります。

必要なものが見つかったら、次を使用してマップに設定します。

myMKMapView.region.center = // Center coordinates of country
myMKMapView.region.span = // A value large enough to enclose the country.
于 2012-12-31T14:57:38.147 に答える
-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)
        }
    }
于 2015-09-25T14:29:31.520 に答える