/ / MKMapView: Priblíženie na predvolenú „úroveň krajiny“ - iphone, ios, mkmapview, core-location

MKMapView: Priblíženie na predvolenú "úroveň krajiny" - iphone, ios, mkmapview, core-location

pri vkladaní MKMapView do ovládača UIViewControllera pri nastavení na Satelitné zobrazenie sa mapa priblíži a upraví tak, aby zobrazovala celú krajinu, v ktorej sa používateľ aktuálne nachádza: Napríklad Spojené štáty americké, ako je to znázornené nižšie.

Keď používateľ teraz priblíži mapu alebo programovo priblížim mapu, zdá sa, že nie je schopná obnoviť túto predvolenú úroveň priblíženia.

Samozrejme by som mohol zistiť súradnice tohto predvoleného priblíženia, aby som sa priblížil späť k tomuto nastaveniu, ale prakticky by som to musel urobiť pre každú krajinu, ktorá to naozaj nestojí.

Vedel niekto, ako tento problém vyriešiť?

MKMapView s predvolenou úrovňou zväčšenia zobrazujúcou USA

odpovede:

5 pre odpoveď č. 1

Na to potrebuje dva druhy informácií. Súradnice stredu pre vybratú krajinu a správna hodnota, ktorá sa má nastaviť pre región.span na mape. Pravdepodobne má prístup k týmto údajom z databázy Apple Maps. Nie som si vedomý toho, že sa to stalo pre nás verejnosťou. Na internete sú však aj iné databázy s geokódovaním, ak ich prehľadávate, čo by vám mohlo poskytnúť tieto dve hodnoty.

Ak nájdete ten, ktorý má to, čo chcete, nastavíte ho na mape pomocou:

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

-1 pre odpoveď č. 2

Môžete jednoducho uložiť predvolenú oblasť na viewDidAppear a potom ju v prípade potreby použiť:}

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)
}
}