PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 24 → Distance parcourue à l'aide du GPS
Distance parcourue à l'aide du GPS
Débuté par YDE, 12 oct. 2018 15:46 - 2 réponses
Membre enregistré
11 messages
Posté le 12 octobre 2018 - 15:46
Bonjour,
Je souhaiterai connaitre la distance parcourue avec mon mobile sous Android, pour cela j'utilise la fonction GPSSuitDéplacement mais à priori je dois avoir une erreur dans mon code car SAI_Distance reste à 0.
Pouvez vous m'indiquer quelle erreur ai je fais.
Merci
Yves D.

Ci dessous le code utilisé :
---------------------------------------------------------------------------------------
DistanceInstant est un réel
DistanceTotale est un réel
PositionPrecedente est une géoPosition

// Initialisation du GPS
GPSInitParamètre(gpsSatellite,gpsVitesse+gpsPrécisionElevée+gpsEnergieElevée)

// Est ce que le GPS est actif ?
SI GPSEtat() <> gpsActivé ALORS
Erreur("Le GPS n'est pas en état de fonctionner.","Veuillez l'activer pour avoir accès à cette application.")
FinProgramme()
SINON
LIB_Etat = "GPS Activé"
DistanceInstant=0
DistanceTotale=0
PositionPrecedente=GPSDernièrePosition()
// Demande à suivre le déplacement avec un temps maximum entre deux appels de
GPSSuitDéplacement(Distance,1000,5)

FIN
--------------------------------------------------------------------------------------------
PROCEDURE Distance(PositionActuelle est une géoPosition)
DistanceInstant=géoDistance(PositionActuelle,PositionPrecedente,géoMètre)
DistanceTotale=DistanceTotale+DistanceInstant
PositionPrecedente=PositionActuelle
FEN_PRINCIPALE.SAI_Distance=DistanceTotale
---------------------------------------------------------------------------------------------
Membre enregistré
8 messages
Posté le 26 avril 2019 - 15:05
J'ai moi aussi un gros problème de calcul de distance qui me renvoie des milliers de km, alors que je démarre juste et même après.
Pour ce qui est de votre code il faut vérifier que c'est ou non la première position que vous recevez, car votre PositionPrecedente n'a aucune valeur au début.

Créer une variable globale dans votre fenêtre : i est un entier = 0

Procedure Distance(PositionActuelle est une geoPosition)
SI <> 0 ALORS
DistanceInstant=geoDistance(PositionActuelle,PositionPrecedente,géoMètre)
DistanceTotale=DistanceTotale+DistanceInstant
FEN_PRINCIPALE.SAI_Distance=DistanceTotale //En mètre
SINON
i = 1
FIN
PositionPrecedente=PositionActuelle


Je veux bien un retour de votre part sur précision de la chose.
Posté le 27 avril 2019 - 07:50
Bonjour,
J'ai abandonné le projet mais je vous remercie pour votre aide.
Yves D.