obtenir la vitesse à laquelle se déplace dispositif
-
19-09-2019 - |
Question
J'utilise CLLocation.speed
pour obtenir la vitesse du dispositif mobile mais je reçois 0 à chaque fois. J'ai essayé
speed = ([newlocation getDistanceFrom:oldlocation]/[newlocation.timeStamp timeIntervalSinceDate:oldlocation.timeStamp])
Le problème est qu'il donne une fois que la mauvaise vitesse en temps.
La solution
Il y a une petite configuration qui vous aidera à:
-
CLLocationManager
ne vous enverra pas une mise à jour à moins que l'utilisateur se déplace en dehors d'un cercle à leur emplacement actuel. Vous pouvez contrôler le rayon du cercle (le rendre plus petit) et vous obtenez des mises à jour plus raffinés. Voir distanceFilter . -
CLLocationManager
a un contrôle de précision, que vous souhaitez définir à son meilleur niveau. Voir desiredAccuracy .
Votre meilleur pari est simplement de calculer sans cesse cette « vitesse » et d'utiliser un faible filtre passe-bas pour lisser les résultats.
Voir aussi cette question pour plus d'informations: iPhone CoreLocation: Comment obtenir la vitesse la plus précise .