PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV Mobile (versiones precedentes) → Afficher des positions GPS proche de ma position actuelle depuis une BDD
Afficher des positions GPS proche de ma position actuelle depuis une BDD
Iniciado por FALHI YOUSRI, 12,oct. 2017 12:01 - 1 respuesta
Publicado el 12,octubre 2017 - 12:01
Bonjour tous le monde,

Voila j'aimerai afficher des positions GPS qui existent dans une BDD mais seulement qui sont dans un rayon de 500 m a partir de la position mon téléphone.

j'ai essayer (Géodistance) mais avec cette méthode on doit parcourir toute la base pour calculer la distance donc ça prend beaucoup de temps .

j'essaye d'utilisé une requête SQL que ça marche chez les gens dans les forums et dans plusieurs langages de développement et aussi sur les bases de données.

ma requête la voici :
SELECT
Client.Atitude AS Atit,
Client.Longitude AS Long,
Client.Code_client AS Code_client,
Client.Nature_client AS NATURE,
Client.Ville AS Ville,
6367445 * ACOS( ( ( SIN( RADIANS( 33.6628465 ) ) * SIN( RADIANS( Client.Atitude ) ) ) + ( ( COS( RADIANS( 33.6628465 ) ) * COS( RADIANS( Client.Atitude ) ) ) * COS( ( RADIANS( -7.4081600 ) - RADIANS( Client.Longitude ) ) ) ) ) ) AS Distance
FROM
Client

WHERE Distance <= 500


-----

33.6628465 = Latitude de ma position actuelle
-7.4081600 = Longitude de ma position actuelle
500 = c'est la tolérance ou bien la distance sur lequel je doit filtrer les autres positions.

------

- sur la base HFSQL la requête marche très bien ;)

https://hostimage.windev.io/images/hfsql_5829ef7cea9e141437b4fcbd682fe27b.bmp

- sur le simulateur la requête marche aussi très bien :)





- Mais sur mon téléphone mobile ça ne me donne pas de résultat ;(







Bloqué pendant plusieurs jours je retourne vers les experts pour trouvé une solution

Merci d'avance :(
Miembro registrado
637 mensajes
Popularité : +36 (36 votes)
Publicado el 13,octubre 2017 - 11:30
Bonjour,

C'est probablement la partie calcul exécutée sur le mobile qui renvoie un résultat différent.

Ce que je ferais :
- je tracerais le résultat de la partie calcul en GO puis sur le terminal pour m'assurer que c'est bien le problème
- Puis je sortirais la partie calcul de la requête pour la calculer dans une procédure connexe (pour être sûr d'avoir les bonnes données, puis de les transmettre à la requête via des variables)
- Si toutefois les calculs ne sont encore pas corrects même dans une procédure à part, alors faire les calculs dans un web service

Bon dev,
Eric.

--
Eric DELATTRE
http://www.yoosite.fr