PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2025 → geodistance renvoi des distances hors normes
geodistance renvoi des distances hors normes
Débuté par infobarquee, 09 déc. 2025 21:39 - 4 réponses
Membre enregistré
11 messages
Posté le 09 décembre 2025 - 21:39
bonjour,
je suis en train de rajouter une option sur mon appli qui calcule la distance parcourue
geodistance me renvoie des valeurs farfelues sans bouger, du style 31500km
aurais je raté un truc?
merci d'avance, c'est la dernière ligne droite de mon appli

Procedure recupereposition(maposition est une geoPosition)
latitudecourante est un réel
longitudecourante est un réel
difference est un réel

latitudecourante = maposition..Latitude
longitudecourante = maposition..Longitude

SI latitudecourante <> 0 _ET_ longitudecourante <> 0 ALORS
derniergeoposition est une geoPosition
difference = geoDistance(maposition,derniergeoposition,géoKilomètre)
derniergeoposition = maposition
distance += difference

FIN
Membre enregistré
3 748 messages
Posté le 09 décembre 2025 - 22:17
Salut
C'est normal la position n'est jamais vérifier
Il existe une propriété ..valide
De plus, la position n'est jamais récupéré
En plus dernièregeoposition est tout de suite utilisé dans geodistance
Donc, il n'y a aucune logique à ce code
Membre enregistré
5 messages
Posté le 10 décembre 2025 - 13:43
Hello

Il manque:
derniergeoposition = GPSDernièrePosition()

Et pas sûr du code appelant la procédure

On dirait que derniergeoposituin et maposition sont inversés à la fin.
Membre enregistré
11 messages
Posté le 10 décembre 2025 - 20:51
j'adore lorsque l'on demande de l'aide et que l'on se fait taper sans proposer de solution

bon j'ai modifié mon code avec des vérifications comme j'ai l'habitude de faire en php
j'ai bien mes valeurs latitude et longitude
maintenant le souci est que difference est toujours à zéro
j'ai laissé en mètre pour voir si cela bougeait

Procedure recupereposition(maposition est une geoPosition)
latitudecourante est un réel
longitudecourante est un réel
difference est un réel
latdernier est un réel
londernier est un réel

LIB_Latitude = ChaîneConstruit("%1",maposition.Latitude)
LIB_Longitude = ChaîneConstruit("%1",maposition.Longitude)

latitudecourante = maposition.Latitude
longitudecourante = maposition.Longitude

derniergeoposition est une geoPosition
derniergeoposition = GPSDernièrePosition()

latdernier = derniergeoposition.Latitude
londernier = derniergeoposition.Longitude



SI latitudecourante <> 0 _ET_ longitudecourante <> 0 ALORS

SI latdernier = 0 _ET_ londernier = 0 ALORS
distance = distance
latdernier = londernier = 1
derniergeoposition = GPSDernièrePosition()
Info("1" + latdernier + RC + londernier)

SINON
latitudecourante = maposition.Latitude
longitudecourante = maposition.Longitude
derniergeoposition = GPSDernièrePosition()


difference = geoDistance(maposition,derniergeoposition)
distance += difference
Info(difference + RC +latdernier + RC + londernier)
FIN

FIN
Membre enregistré
11 messages
Posté le 12 décembre 2025 - 19:25
finalement j'ai réussi malgré ce qu'une certaine personne pouvait dire de désobligeant

SI latitudecourante <> 0 _ET_ longitudecourante <> 0 ALORS
derniergeoposition est une geoPosition

SI latdernier = 0 _ET_ londernier = 0 ALORS
affichedistance = affichedistance

derniergeoposition = GPSDernièrePosition()
latdernier = derniergeoposition.Latitude
londernier = derniergeoposition.Longitude


SINON

derniergeoposition.Latitude = latitudecourante
derniergeoposition.Longitude = longitudecourante



difference = geoDistance(derniergeoposition,maposition,géoKilomètre)


FIN

FIN

affichedistance += difference

latitudecourante = maposition..Latitude
longitudecourante = maposition..Longitude