ottenere la velocità alla quale dispositivo si muove
-
19-09-2019 - |
Domanda
Sto usando CLLocation.speed
per ottenere la velocità del dispositivo in movimento, ma io sono sempre 0 ogni volta. Ho cercato
speed = ([newlocation getDistanceFrom:oldlocation]/[newlocation.timeStamp timeIntervalSinceDate:oldlocation.timeStamp])
Il problema è che sta dando la velocità sbagliata una volta ogni tanto.
Soluzione
C'è un po 'di configurazione che vi aiuterà a uscire:
-
CLLocationManager
non invierà un aggiornamento a meno che l'utente si muove al di fuori di un cerchio alla loro posizione attuale. È possibile controllare il raggio del cerchio (renderlo più piccolo) in modo da ottenere gli aggiornamenti più raffinati. Vedere distanceFilter . -
CLLocationManager
ha un controllo di precisione che si desidera impostare al suo culmine livello. Vedere desiredAccuracy .
La cosa migliore è semplicemente di calcolare continuamente questa "velocità" e utilizzare un filtro passa-basso debole per appianare i risultati.
Si veda anche questa domanda per ulteriori informazioni: iPhone CoreLocation: Come ottenere la velocità più accurata .