conseguir la velocidad a la que el dispositivo se está moviendo
-
19-09-2019 - |
Pregunta
Estoy utilizando CLLocation.speed
para obtener la velocidad del dispositivo móvil, pero estoy recibiendo 0 cada vez. Probé
speed = ([newlocation getDistanceFrom:oldlocation]/[newlocation.timeStamp timeIntervalSinceDate:oldlocation.timeStamp])
El problema es que está dando la velocidad equivocada de vez en cuando.
Solución
Hay un poco de configuración que le ayudará a cabo:
-
CLLocationManager
no le enviará una actualización a menos que el usuario se mueve fuera de un círculo en su ubicación actual. Se puede controlar el radio del círculo (hacerlo más pequeño) para que pueda obtener las actualizaciones más refinados. Consulte distanceFilter . -
CLLocationManager
tiene un control de precisión, que desea establecer a su nivel más fino. Consulte desiredAccuracy .
Su mejor apuesta es simplemente para calcular continuamente esta "velocidad" y el uso de un filtro de paso bajo débil para suavizar los resultados.
Vea también esta pregunta para obtener más información: iPhone CoreLocation: Como llegar a la velocidad más precisa .