Как повернуть карту в зависимости от направления движения пользователя (не перед камерой) - Swift 5 - IOS - PullRequest
2 голосов
/ 25 июня 2019

Я провел исследование здесь, чтобы попытаться решить мою проблему, но я не могу найти решение.Я хочу, чтобы моя карта вращалась, поэтому верхняя часть моего экрана - это направление, в котором движется пользователь.Приведенный ниже код работает, но поворачивает экран в зависимости от того, с какой стороны телефон смотрит.Я хочу, чтобы карта вращалась только тогда, когда пользователь двигается в другом направлении.

Кто-нибудь решил эту проблему?

  let manager = CLLocationManager()

   @IBOutlet weak var map: MKMapView!



    func locationManager(_ manager: CLLocationManager, didUpdateHeading newHeading: CLHeading){
    map.camera.heading = newHeading.magneticHeading
    map.setCamera(map.camera, animated: true)
    print("updatingHeading is called")
   }


func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {


    let location = locations[0]
    let span:MKCoordinateSpan = MKCoordinateSpan.init(latitudeDelta: 0.01,longitudeDelta: 0.01)
        let myLocation:CLLocationCoordinate2D = CLLocationCoordinate2DMake(location.coordinate.latitude,location.coordinate.longitude)
        let region:MKCoordinateRegion = MKCoordinateRegion.init(center: myLocation, span: span)
        map.setRegion(region, animated: true)
        self.map.showsUserLocation = true

        let mapCamera = MKMapCamera(lookingAtCenter: myLocation, fromDistance: 5000, pitch: 30, heading: 0)
        map.setCamera(mapCamera, animated: true)
 }




 func viewDidLoad() {
 manager.startUpdatingLocation()
 manager.startUpdatingHeading() 
}

Есть ли что-то встроенное в swift, чтобы помочь мне?

ура

...