2015-06-25 6 views
5

Ich kann nicht herausfinden, wie man die Karte aus ViewDidLoad auf den Benutzer Standort vergrößern. Ich habe versucht, eine Region einzustellen, und das hat nicht funktioniert. Dies ist der Code, den ich habe, irgendwelche Tipps?Zoomen Sie auf User Location-Swift

@IBOutlet schwach var mapView: MKMapView! var MapViewLocationManager: CLLocationManager! = CLLocationManager() var currentLocation: PFGeoPoint! = PFGeoPoint()

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.mapView.showsUserLocation = true 
    mapView.delegate = self 
    MapViewLocationManager.delegate = self 
    mapView.setUserTrackingMode(MKUserTrackingMode.Follow, animated: true) 
} 

Ich habe die Antworten auf diese Frage nachgeschlagen, aber noch keine Antwort in Swift oder dass tatsächlich funktioniert gefunden. Vielen Dank!!

Antwort

13

Ich würde so etwas wie dies versuchen:

let latitude:CLLocationDegrees = //insert latitutde 

    let longitude:CLLocationDegrees = //insert longitude 

    let latDelta:CLLocationDegrees = 0.05 

    let lonDelta:CLLocationDegrees = 0.05 

    let span = MKCoordinateSpanMake(latDelta, lonDelta) 

    let location = CLLocationCoordinate2DMake(latitude, longitude) 

    let region = MKCoordinateRegionMake(location, span) 

    mapView.setRegion(region, animated: false) 

Ich sah Sie sagten, Sie eine Region versucht zu setzen. Vielleicht versuch es so.

+0

Vielen Dank! Ich denke, das ist, wo ich feststecke, wie würde ich den Breiten- und Längengrad des Benutzerstandortes definieren? – Caitlin

+0

@Caitlin du bist willkommen! Ich bin auf Handy, so kann ich nicht erklären, aber überprüfen Sie dies: http://youtu.be/pSjbMwR2A2U und das: http://Stackoverflow.com/a/25698536, wenn das Video nicht hilft. – rb612

+0

Sehr geschätzt. – Caitlin

5

Bei den meisten Apps ist eine Schaltfläche "aktueller Standort" implementiert. Ein einfacher Weg, es zu tun, ist wie folgt:

@IBAction func myLocationButtonTapped(_ sender: Any) { 

    mapView.showsUserLocation = true 
    mapView.setUserTrackingMode(.follow, animated: true) 

} 

Sobald der Benutzer Pfannen oder zoomt die Karte, wird das Tracking stoppen. Es ist also gut genug für mich.

6

Sie müssen dies versuchen. Es wird Karte zoomen.

let span = MKCoordinateSpanMake(0.050, 0.050) let region = MKCoordinateRegion(center: CLLocationCoordinate2D(latitude: 23.0225, longitude: 72.5714), span: span) mapView.setRegion(region, animated: true)

+0

und wenn Sie mehr zoomen möchten, verwenden Sie nur kleinere Zahlen in Spam: 'Lassen Sie Spam = MKCoordinateSpanMake (0,001, 0,001)' – Pavlos