Bonjour à tous,
je développe une application qui entre autre permet de connaitre la distance parcourue.
Pour cela j'utilise le script suivant dans la méthode onLocationChanged(Location location )
la vitesse est données en m/s et le temps en seconde.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 //Calcul de la vitesse //calcul de la vitesse if(location.getAccuracy()>50) { vitesse=0; } else { vitesse=location.getSpeed(); } //Calcul de la distance entre les deux coordonnées gps locationA = new Location("point A"); locationA.setLatitude(lastLatitude); locationA.setLongitude(lastLongitude); locationB = new Location("point B"); locationB.setLatitude(location.getLatitude()); locationB.setLongitude(location.getLongitude()); lastLatitude = location.getLatitude(); lastLongitude = location.getLongitude(); //Calcul de la distance en éliminant les points abérants if(Double.valueOf(locationA.distanceTo(locationB)) <= vitesse*temps) { distance = String.valueOf(Double.valueOf(distance)+Double.valueOf(locationA.distanceTo(locationB))/1000); } else { distance = String.valueOf(Double.valueOf(distance)+Double.valueOf(vitesse*temps)/1000); }
Le pas de l'acquisition est de 1 seconde.
Mon problème est que la distance est toujours sous estimée par rapport à celle que je mesure via l'application "mes Parcours" de google.
Quelqu'un aurait il une idée ?
Partager