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.

Était-ce utile?

La solution

Il y a une petite configuration qui vous aidera à:

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

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top