Mapkit ; Camera position anhand der Geschwindigkeit verändern

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Mapkit ; Camera position anhand der Geschwindigkeit verändern

    Hallo ich habe da eine Funktion geschrieben, die mein Navi App ständig zum abstürzen bringt. Ich weiß das ist nicht sehr Elegant gelöst aber ich würds einfach gern mal zum laufen bekommen. Mapkit liefert ja nichts in die Richtung oder ....
    Gruß

    C-Quellcode

    1. func updateCamera(){
    2. var lat: Double
    3. switch locationManager.location!.speed {
    4. case 20-50:
    5. print("Speed 20-50")
    6. lat = 1000
    7. mapView.camera.pitch = 40
    8. case 50-130:
    9. print("Speed 50-130")
    10. lat = 1100
    11. mapView.camera.pitch = 70
    12. case 130-300:
    13. print("Speed 130-300")
    14. lat = 1200
    15. mapView.camera.pitch = 90
    16. default:
    17. print("Speed default")
    18. lat = 1300
    19. mapView.camera.pitch = 20
    20. break
    21. }
    22. var region:MKCoordinateRegion = mapView.region
    23. var span:MKCoordinateSpan = mapView.region.span
    24. span.latitudeDelta = lat
    25. span.longitudeDelta = location.coordinate.longitude
    26. region.span=span;
    27. mapView .setRegion(region, animated: true)
    28. mapView.userTrackingMode = .FollowWithHeading
    29. print("Update latitude off camera")
    30. }
    Alles anzeigen
  • Jok3r schrieb:

    C-Quellcode

    1. switch locationManager.location!.speed {

    Ich kenne mich mit der API nicht aus, aber explicitly unwrapped optionals so wie oben kommen natürlich als erstes in Verdacht.

    Obigen Code würde ich vielleicht so schreiben:

    Quellcode

    1. guard let speed = locationManager.location?.speed else { return }
    2. switch speed {
    Kriegst Du keine Fehlermeldung in irgendwelchen Logfiles?
  • Hallo du hattest recht ->" fatal error: unexpectedly found nil while unwrapping an Optional value"
    Leider habe ich mit deiner Änderung noch das selbe Problem

    Quellcode

    1. func updateCamera(){
    2. var lat: Double
    3. guard let speed = locationManager.location?.speed else { return }
    4. switch speed {
    5. case 20-50:
    6. print("Speed 20-50")
    7. lat = 1000
    8. mapView.camera.pitch = 40
    9. case 50-130:
    10. print("Speed 50-130")
    11. lat = 1100
    12. mapView.camera.pitch = 70
    13. case 130-300:
    14. print("Speed 130-300")
    15. lat = 1200
    16. mapView.camera.pitch = 90
    17. default:
    18. print("Speed default")
    19. lat = 1300
    20. mapView.camera.pitch = 20
    21. break
    22. }
    23. var region:MKCoordinateRegion = mapView.region
    24. var span:MKCoordinateSpan = mapView.region.span
    25. span.latitudeDelta = lat
    26. span.longitudeDelta = location.coordinate.longitude
    27. region.span=span;
    28. mapView .setRegion(region, animated: true)
    29. mapView.userTrackingMode = .FollowWithHeading
    30. print("Update latitude off camera")
    31. }
    Alles anzeigen