Ich habe eine App, bei der der Standort des Benutzers ständig aktualisiert werden muss, damit ich die aktuellen Koordinaten und die Höhe anzeigen kann. Ich tue dies die didUpdateLocations Funktion:Google Maps iOS SDK Verhindert das Zoomen der Kamera nach jeder Standortaktualisierung
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
if let location = locations.last {
mapView.camera = GMSCameraPosition(target: locationManager.location!.coordinate, zoom: 15, bearing: 0, viewingAngle: 0)
let locValue : CLLocationCoordinate2D = manager.location!.coordinate
let altitude : CLLocationDistance = Double(round(1000*manager.location!.altitude)/1000)
let long = Double(round(10000*locValue.longitude)/10000)
let lat = Double(round(10000*locValue.latitude)/10000)
let alt = String(altitude) + " m"
latitudeLabel.text = String(lat)
longitudeLabel.text = String(long)
altitudeLabel.text = alt
showLearningObjectsWithinRange(location)
}
}
Das Problem ist, wenn ich versuche, auf der Karte auf einer bestimmten Stelle zu vergrößern, wenn ich das Gerät auch leicht die Kamera bewegen, wieder heraus zoomt zurück. Offensichtlich liegt das an der ersten Zeile in meiner didupdateLocations-Funktion, die die Kameraposition festlegt, aber wenn ich diese Zeile entferne, zentriert sich die Karte überhaupt nicht auf ihren Standort.
Ich habe versucht, den GMSCameraPosition-Code in viewDidLoad, viewWillAppear und an mehreren anderen Stellen zu verschieben, aber dies führte zum Absturz der App, weil der Benutzer nicht rechtzeitig gefunden werden konnte.
Hat jemand irgendwelche Vorschläge, wie dies funktioniert? Vielen Dank.
Zoom: 15, verwenden Sie die map.camera.zoom etwas oder überprüfen Sie in der Dokumentation, so dass der Zoom nicht ändern tut wenn Sie den Standort aktualisieren – Shubhank