PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → Avis sur la récupération des donées GPS
Avis sur la récupération des donées GPS
Débuté par Ian, 09 juin 2017 11:18 - 2 réponses
Membre enregistré
106 messages
Popularité : +3 (3 votes)
Posté le 09 juin 2017 - 11:18
Bonjour à tous,

Actuellement dans un thread persistant je lance toutes les 1 minutes un thread qui récupère une position gps comme suit

-1- Thread persistant
Procedure Lance_Thread_Persistant_Localisation()

SI GPSEtat = gpsActivé ALORS

GEOLOCALISATION = Vrai

NotificationPersistante est une Notification
NotificationPersistante..Icone = "ic_launcher_2.png"
NotificationPersistante..Message = "Géolocalisation en cours"


SI PAS ThreadEtat("TH_Sync_Localisation") = threadEnCours ALORS

ThreadExecute("TH_Sync_Localisation" ,threadNormal, Sync_Localisation)

ThreadPersistant("TH_Sync_Localisation", NotificationPersistante)
FIN

SINON

GEOLOCALISATION = Faux

FIN


-2- Thread lancé toute les minutes (je force PARENTIER = 1)
Délai_Localisation = Paramètres.PARENTIER * 6000
SI TimerSys("Lance_Thread_Localisation", Délai_Localisation,3) = 0 ALORS
Erreur("Création du timer impossible")
FIN


-3- Ma procédure de récupération GPS
GPSInitParamètre(gpsRéseau, gpsVitesse + gpsPrécisionElevée + gpsEnergieElevée)
SI GPSEtat() = gpsActivé ALORS
GEOLOCALISATION = Vrai
MaPosition est une geoPosition
MaPosition = GPSRécupèrePosition()


SI MaPosition..PositionValide ALORS

HRAZ(Localisation)

Localisation.VITESSE = Arrondi(MaPosition.Vitesse * 3.6)
Localisation.LONGITUDE = MaPosition..Longitude
Localisation.LATITUDE = MaPosition..Latitude

HAjoute(Localisation)

FIN
SINON
GEOLOCALISATION = Faux
FIN


mon soucis est le suivant :

j'ai constaté que pour certains utilisateurs de mon apk, la position récupérée toute les minutes est la même plus de 20 fois d'affilée alors que ces derniers se déplacent (ce sont des chauffeurs/livreurs). De plus la position récupérée peut être à plus de 20km de leur position réelle même quand ils sont à l arrêt.

Alors je voudrais savoir si j'ai raté quelques choses, si la précision est en cause, si je dois rajouté des paramètres dans GPSRécupèrePosition() ou si tout simplement, une récupération toutes les minutes est totalement déplacée ?

Comment puis-je régler ce problème ? il me faut une position plus précise parce qu elle est remontée sur un autre logiciel qui place cette position via un marqueur sur un carte google map..

Merci d'avance

et bonne journée

--
- ian -
Membre enregistré
179 messages
Popularité : +17 (17 votes)
Posté le 13 juin 2017 - 11:16
Bonjour Ian,

Il faut je crois prendre le problème à l'envers et laisser l'OS donner la position à chaque fois que l'appareil se déplace d'un nombre de mètres significatif. ça sera plus simple à coder et ça utilisera moins de batterie ce qui sont deux avantages non négligeable.

Pour cela il faut utiliser la fonction GPSSuitDéplacement (https://doc.pcsoft.fr/fr-FR/?1000019206&name=GPSSuitDeplacement).

Une explication détaillé en disponible ici : https://doc.pcsoft.fr/fr-FR/?1000019277&name=gestion_geolocalisation_gps#NOTE3_1

Je n'ai pas (encore) testé ces mécanismes je ne peux donc pas faire de retour là-dessus mais c'est dans cette direction que j'irai.

Bon dév!

Jérôme
Membre enregistré
106 messages
Popularité : +3 (3 votes)
Posté le 13 juin 2017 - 11:18
Bonjour,

je relance mon sujet, je n'ai aucune piste pouvant assurer de manière permanente la remonté des bonnes longitudes/latitudes...

Merci d'avances

--
EDIT:
Bonjour Jérome,
nos posts se sont croisés, je vais voir ce que je peux faire avec ta fonction

- ian -
Message modifié, 13 juin 2017 - 11:20