2013-10-29 15 views
7

Eine meiner Apps verwendet den MKMapView auf einem sehr hohen (max) ZoomLevel (hohe Detailkarte) Mit der Einführung von iOS7 kann ich nicht annähernd so nah dran kommen Karte wie zuvor.So erreichen Sie den maximalen Zoomlevel auf iOS MKMapView

Ich verwende die mapView setRegion: Methode dafür.

Ich habe Tests laufen und diese sind die Ergebnisse:

Spannweiten über iOS-Versionen in vollem Umfang nutzen Portrait-Modus mapview:

iOS 5.1: 140 meters 
iOS 6.1: 70 meters 
iOS 7.0.3: 281 meters 
iOS 7.0.3: 160 meters (if pinched manually!!) 

Gibt es eine Möglichkeit, die 160 Meter (die maximale Zoomstufe zu erreichen programmatisch auf) iOS 7.0.3

(ich weiß, dass die horizontale Spanne auf der lattitude abhängt, so dass die Anzahl der Meter ist nur ein Hinweis in keinem Verhältnis)

Antwort

14

Credits für diese Lösung gehen zu YUF in this Thread im Apple Developer Forum:

Es MKMapCamera verwendet, um die Zoomstufe zu bestimmen, nicht setRegion.

MKMapCamera* camera = [MKMapCamera 
cameraLookingAtCenterCoordinate:(CLLocationCoordinate2D)centerCoordinate 
       fromEyeCoordinate:(CLLocationCoordinate2D)eyeCoordinate 
        eyeAltitude:(CLLocationDistance)eyeAltitude]; 
[mapView setCamera:camera animated:NO]; 

Wenn Sie centerCoordinate und eyeCoordinate gleich halten, wird die Kamera geradeaus schauen. Die Höhe gibt Ihnen die Kontrolle über den Zoom. Es wird nicht bis auf Null gehen, aber es wird äquivalente Zoomstufen wie bei früheren iOS-Versionen geben.

+1

Vielen Dank für die Anerkennung! Ich habe meine Antwort im Apple Post mit einer anderen Lösung aktualisiert. – yuf

+1

Schön. Vielen Dank. –

Verwandte Themen