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.

È stato utile?

Soluzione

C'è un po 'di configurazione che vi aiuterà a uscire:

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

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top