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.

¿Fue útil?

Solución

Hay un poco de configuración que le ayudará a cabo:

  1. 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 .

  2. 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 .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top