|
PROFESSIONAL NEWSGROUPS WINDEV, WEBDEV and WINDEV Mobile |
| | | | | |
| Started by jcl17, Jan., 19 2026 3:00 PM - 8 replies |
| |
| | | |
|
| |
Registered member 226 messages |
|
| Posted on January, 19 2026 - 3:00 PM |
Bonjour à tous,
j'essaie de tracer un parcours sur une carte, pas de problème les points géoposition s'affichent bien.
là ou j'ai un problème c'est lorsque mon application passe en arrière plan, bien sûr j'ai toutes les autorisations y compris en mode arrière plan, je log bien le passage en arrière plan et remise en avant plan.
il me semble que le callback du gpssuitdeplacement s'interrompt et je pensais inscrire les geopositions dans un fichier local afin de pouvoir les reprendre dès que l'on passe en avant plan........ mais là je cale !
quelqu'un a-t-il déjà fait cela et peut-il me donner sa solution ?
merci d'avance
-- Jean-Claude Lequeux |
| |
| |
| | | |
|
| | |
| |
Registered member 1,201 messages |
|
| Posted on January, 20 2026 - 7:06 AM |
Salut. Oui je fais cela. Est-ce-que tu stockes la nouvelle position même quand tu es en arrière plan ? Pour ma part, je fais (dans le callback)
Procedure GPS_SUIVI_DEPLACEMENT(MaRefreshPosition est une geoPosition) locali est un entier=0 localj est un entier=0 sDirection est une chaîne
bAdd est un booléen=Faux
mMarqueur est un Marqueur myLongitude est un réel=0 myLatitude est un réel=0
gMaVraiPosition=MaRefreshPosition
SI EnModeArrièrePlan() ALORS SI gbTraceActive=Vrai AND gniDTrace<>0 ALORS SI MaRefreshPosition..DirectionValide = Vrai ET MaRefreshPosition..PositionValide=Vrai ET MaRefreshPosition..VitesseValide=Vrai ET MaRefreshPosition.PrécisionValide=Vrai ALORS SI MaRefreshPosition..Vitesse>0 ALORS localj = MaRefreshPosition..Direction/22.5 locali = Arrondi(localj,0) SI locali=0 ALORS sDirection = "N/A" SINON sDirection = ROSE_DES_VENTS(locali) FIN FIN FIN POSITIONS.IDTRACE = gniDTrace POSITIONS.LATITUDE = MaRefreshPosition.Latitude POSITIONS.LONGITUDE = MaRefreshPosition.Longitude POSITIONS.DIRECTION = sDirection HAjoute(POSITIONS) gniDPosition=POSITIONS.IDPOSITIONS Ajoute(gsTabPositions,MaRefreshPosition) FIN RETOUR FIN
-- Pascal Boulesteix Applications Visiolittoral et WNat |
| |
| |
| | | |
|
| | |
| |
Registered member 226 messages |
|
| Posted on January, 20 2026 - 10:15 AM |
Merci Pascal, je vais m'en inspirer.
j'essaye de suivre un tracé de randonnée, pour la visu de la trace sur la carte c'est ok par contre pour avoir une vitesse moyenne cohérente et filtrant les mesures aberrantes quelle galère ! je ne sais pas comment tu fais ?
quand à l'altitude la marge d'erreur me paraît très importante, par contre le calcul des dénivelés + et - me semble correct
merci de ta réponse
-- Jean-Claude Lequeux |
| |
| |
| | | |
|
| | |
| |
Registered member 226 messages |
|
| Posted on January, 30 2026 - 1:34 PM |
Bonjour,
je reviens vers vous sur le sujet, j'utilise bien gpssuitdeplacement avec 1s et 2m dans mon callback en fonction de l'arrière plan ou du premier plan je charge bien mes points géo dans des tableaux différents et à la reprise en premier plan je récupère les ponts AR pour les tracer sur la carte.
les permissions sont bien demandées
j'ai mis un log en place pour tracer les différentes étapes
je m'aperçois en testant (en GO ou en Play store test) qu'en premier plan tout va bien mais par contre après le passage en arrière plan rien ne se passe et je ne passe plus dans mon callback apparemment.
avez-vous une solution ?
-- Jean-Claude Lequeux |
| |
| |
| | | |
|
| | |
| |
Registered member 313 messages |
|
| Posted on January, 30 2026 - 2:22 PM |
Bonjour,
J'utilise GPSSuitDéplacement avec 5s et 5m et je ne rencontre aucun problème en arrière plan.
Cela dit, quelques précisions s'imposent : - Je déclare GPSInitParamètre(gpsAuto,gpsPrécisionElevée) et GPSSuitDéplacement(GPSSuitCallback,5s,5) dans le code d'initialisation du projet. - Ensuite (toujours dans le code d'initialisation du projet), je lance un Thread "persistant" avec le paramètre "thpLocalisation" de manière à ce que l'application (et notamment le suivi GPS) continue de fonctionner même si les fenêtres ont été fermées (ou passées en arrière plan)
Plus d'infos ici : https://doc.pcsoft.fr/fr-FR/?1000020584&productversion=xxA305067
Cordialement, Fabrice |
| |
| |
| | | |
|
| | |
| |
Registered member 313 messages |
|
| Posted on January, 30 2026 - 2:30 PM |
| |
| |
| | | |
|
| | |
| |
| Posted on January, 30 2026 - 3:17 PM |
Merci Fabrice pour ta réponse,
j'avais bien regardé le Thread persistant mais malheureusement je n'ai pas trouvé comment le coder, pourrais-tu me donner un exemple ? mon callback de gpssuitdeplacement est la procédure SuiviGPS
Cordialement JC
Fabrice N a écrit :
Bonjour, J'utilise GPSSuitDéplacement avec 5s et 5m et je ne rencontre aucun problème en arrière plan. Cela dit, quelques précisions s'imposent : - Je déclare GPSInitParamètre(gpsAuto,gpsPrécisionElevée) et GPSSuitDéplacement(GPSSuitCallback,5s,5) dans le code d'initialisation du projet. - Ensuite (toujours dans le code d'initialisation du projet), je lance un Thread "persistant" avec le paramètre "thpLocalisation" de manière à ce que l'application (et notamment le suivi GPS) continue de fonctionner même si les fenêtres ont été fermées (ou passées en arrière plan) Plus d'infos ici : https://doc.pcsoft.fr/fr-FR/?1000020584&productversion=xxA305067Cordialement, Fabrice |
| |
| |
| | | |
|
| | |
| |
Registered member 313 messages |
|
| Posted on January, 30 2026 - 4:27 PM |
Bonjour,
Il n'y a pas grand chose à faire. C'est assez bien expliqué dans l'aide en ligne.
Dans le code d'init du projet :
GPSInitParamètre(gpsAuto, gpsPrécisionElevée) GPSSuitDéplacement(SuiviGPS, 5s, 5)
ThreadExecute("MonThread1", threadContexteGlobal, LeThreadPersistant)
Notif est une Notification Notif.Titre = "Message à afficher" Notif.ActionClic = "" Notif.Supprimable = Faux ThreadPersistant("MonThread1", Notif, thpLocalisation)
La procédure "thread persistant" (qui ne fait rien) :
Procedure LeThreadPersistant() TANTQUE PAS ThreadArrêtDemandé() ThreadPause(1s) FIN
Si tu veux arrêter ton application "proprement", il faut : 1) Arrêter le suivi GPS par : GPSTermine() 2) Arrêter le thread persistant par : ThreadDemandeArrêt("MonThread1") 3) Fermer la fenêtre ou faire un FinProgramme()
A toi d'adapter ce code en fonction de tes besoins...
Cordialement, FabriceMessage modified, January, 30 2026 - 4:30 PM |
| |
| |
| | | |
|
| | |
| |
Registered member 226 messages |
|
| Posted on January, 30 2026 - 5:13 PM |
Merci Fabrice c'est super, bien sûr j'ai conditionné le code thread par un typeconfiguration = android

jc
-- Jean-Claude Lequeux |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|