CLLocationManager - возвращает неверную скорость - PullRequest
0 голосов
/ 27 июня 2018

Я пытаюсь рассчитать текущую скорость движения пользователей, но между скоростью cllocationmanager и фактической скоростью движения существует огромная разница.

Пока я езжу со скоростью 50 км / ч, а менеджер местоположений показывает ~ 72 / ~ 73 км / ч. Ниже приведен код, который я использую.

        locationManager = CLLocationManager()
        locationManager.delegate = self
        locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation
        locationManager.requestWhenInUseAuthorization()
        locationManager.allowsBackgroundLocationUpdates = true
        locationManager.pausesLocationUpdatesAutomatically = false
        locationManager.distanceFilter = 1.0
        locationManager.headingFilter = 0.1
        locationManager.startUpdatingLocation()

А ниже - протокол диспетчера местоположения

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

    let speedInKmph = location.speed * 3.6
    if speedInKmph > 10 {
        MyRide.shared.speedInfo.append(SpeedInfo(speed: speedInKmph))
        self.view.showToast("\(speedInKmph)  **********", position: .bottom, popTime: 2.0, dismissOnTap: false)
    }
}
...