qui est le meilleur moyen pour calculer la vitesse en android si “manuel de calcul à l'aide de coordonnées GPS” ou “emplacement.getSpeed”?
Je suis en train de calculer la vitesse en appareil android, mais quelle est la meilleure pratique pour le faire, déjà il a lieu.getSpeed() la fonction à l'aide du GPS, est-ce la meilleure façon de l'utiliser? ou dois-je calculer la vitesse manuellement à l'aide de coordonnées GPS obtenu?
OriginalL'auteur Anand K | 2014-02-08
Vous devez vous connecter pour publier un commentaire.
Il semble que la getSpeed() la méthode n'est pas toujours fiable, surtout à basse vitesse et lors de la couverture gps n'est pas optimale.
Vous pouvez avoir un coup d'oeil à cette question et cette une qui sont à la fois sur les alternatives pour getSpeed().
Le android developper page dit que vous obtiendrez de meilleures performances en utilisant la géolocalisation de Google API.
Il semble donc que le choix est en fonction de l'utilisation de votre application: si vous ciblez déplacement lent dans la zone avec une mauvaise couverture gps (marche dans le bois), l'utilisation de votre propre mise en œuvre. Rapide dans la zone avec une bonne couverture GPS, utilisez la géolocalisation de Google API.
Espère que cela vous a aidé.
OriginalL'auteur Legisey
De l'OMI, la meilleure approche actuelle sur Android est d'utiliser
Location.getSpeed()
avec le Les Services Google API location et la fondue fournisseur d'emplacement. Alors, la réalité, de vérifier cette valeur contre Google Play Services De Reconnaissance De L'Activité.La fusion fournisseur d'emplacement intègre quelques autres capteurs de bord pour ajuster les données de localisation, ce qui est mieux que le GPS seul. Ensuite, vérifiez la ActivityRecognition.getMostProbableActivity() méthode. Si le
DetectedActivity
est de typeSTILL
, votre vitesse est probablement égale à 0. Si sonON_FOOT
, c'est probablement une faible vitesse (par exemple, 1 m/s). Si sonON_BICYCLE
ouIN_VEHICLE
, vous êtes probablement pas un problème en s'appuyant sur la vitesse de sortie obtenue directement à partir deLocation.getSpeed()
. Vous devez aussi vérifier laDetectedActivity.getConfidence()
valeur trop, et de définir votre propre seuil pour un niveau de confiance de vous nourrir "de la confiance":) quand on s'appuie sur ces valeurs.Je voudrais aussi certainement vous suggérons de ne PAS simplement la moyenne des positions séquentielles pour obtenir une vitesse moyenne entre les deux positions (si vous le faites, cela doit être une moyenne sur un grand nombre de postes). Dans mon analyse comparative sur les appareils mobiles (voir ma thèse ici, pages 105-106, et 137-138 en particulier), j'ai trouvé la vitesse instantanée calculée par le GPS de sous-système (qui est généralement basé sur la Le décalage Doppler de la porteuse des signaux GPS) d'être beaucoup plus précis que les positions dérivées de GPS. 95e percentile de la vitesse observée est immobile à l'intérieur (en utilisant le GPS assisté, pas de capteur de fusion) était de 1 m/s sur un Sanyo Pro 200 que j'ai testé. J'ai été capable de filtrer un nombre significatif de la position des valeurs aberrantes à l'aide des données de vitesse (voir page 137-138) dans certains gestion intelligente de l'énergie les techniques que j'étais en train d'évaluer. Avec la fusion des capteurs, et de la reconnaissance de l'activité pour aider à filtrer les valeurs aberrantes, la précision doit être mieux que cela, sur un dispositif similaire.
Enfin, et je ne peux pas l'accent ce suffisant, possédez-vous des tests sur des dispositifs réels, comme beaucoup que vous pouvez obtenir une prise de congé, et de préférence les modèles les plus populaires là-bas. Android dispose d'un nombre de constructeurs à mettre hors d'appareils, qui ont toutes leurs excentricités. Votre meilleur pari pour créer une solution qui cible les modèles les plus populaires, tout en reconnaissant que c'est irréaliste d'obtenir une solution fonctionne parfaitement sur tous les modèles.
Désolé à ce sujet! Juste fixé, il devrait maintenant fonctionner.
Merci beaucoup. Ton travail a l'air très sérieux. Auriez-vous l'esprit si je vous pose des questions connexes sur le gps et de précision de la distance?
Assurez-vous - si elle implique de code, vous êtes probablement mieux de l'ouverture d'une nouvelle question ici. Si pas, je vous recommande l'ouverture de la question sur le SIG StackExchange site gis.stackexchange.com. De toute façon, après sa viens de poster le lien de la question dans un commentaire ici et je vais prendre un coup d'oeil.
Le lien vers votre thèse ne fonctionne pas, pouvez-vous veuillez les corriger, vraiment m'aider. merci!!!!
OriginalL'auteur Sean Barbeau
La meilleure façon pour les appareils qui sont plus rapides que la vitesse de marche, est d'utiliser directement l'emplacement.getSpeed().
Pour les piétons, ou d'autres de ralentir la vitesse des situations, ce n'est pas très facile, peut-être qu'il est simplement impossible d'avoir un valide vitesse lente qui est valable au moment de la.
Certains tentent d'évaluer l'histoire et faire une moyenne, ou de seuil en fonction de l'approche, ce qui permettra d'améliorer pour une application spécifique ou l'utilisation.
Mais le plus simple est de la conception de votre Application à ignorer les basses vitesses.
Quelques liens relatifs à la vitesse:
La position GPS de correction
Lisse les données GPS
OriginalL'auteur AlexWien