DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions standard / Fonctions de géolocalisation
  • Présentation
  • Mettre en place la gestion du GPS
  • Vérifier si le GPS est activé
  • Etre averti du changement d'état du GPS
  • Suivre le déplacement
  • Terminer l'utilisation des fonctions GPS
  • Quand utiliser quelle fonction ?
  • Fonctions disponibles selon les plateformes
  • Tableau récapitulatif
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Gestion de la géolocalisation et du GPS
Présentation
WINDEV Mobile et WEBDEV permettent d'exploiter les fonctionnalités de géolocalisation et GPS des appareils téléphoniques et des navigateurs.
WEBDEV - Code Navigateur Dans les sites Web, il est possible d'interagir avec les fonctionnalités GPS du matériel, si ce matériel en dispose (appareil mobile en général). Dans un site Web affiché sur un mobile, il est possible de récupérer ou suivre une position.
Attention : La géolocalisation n'est disponible que sur certains navigateurs récents :
  • FireFox à partir de la version 3.5,
  • Chrome à partir de la version 5.0.342.1,
  • Opéra à partir de la version 10.6,
  • Safari à partir de la version 5.0.
Lors de l'appel à une fonction de géolocalisation, le navigateur demande l'autorisation de localiser.
Mettre en place la gestion du GPS

Vérifier si le GPS est activé

Pour vérifier si le GPS est activé, il suffit d'utiliser la fonction GPSEtat.
Exemple :
// 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()
FIN

Etre averti du changement d'état du GPS

Pour être averti du changement d'état du GPS, il suffit d'utiliser la fonction GPSEtat en spécifiant le nom de la procédure qui va gérer l'état actuel du GPS.
Exemple :
GPSEtat(_ChangementEtatGPS)
Le code de la procédure est le suivant :
PROCÉDURE _ChangementEtatGPS(Etat)
 
SI EtatActuel = Etat ALORS RETOUR
EtatActuel = Etat
FinTimerSys(TIMER_RECUPERATION)
SELON Etat
CAS gpsActivé
// Le fournisseur a été activé par l'utilisateur.
LIB_Etat = "GPS activé"
CAS gpsDésactivé
// Le fournisseur a été désactivé par l'utilisateur.
LIB_Etat = "GPS désactivé"
CAS gpsHorsService
// Le fournisseur est hors-service.
LIB_Etat = "GPS hors-service"
CAS gpsIndisponible
// Le fournisseur est temporairement indisponible.
LIB_Etat = "GPS indisponible"
CAS gpsDisponible
// Le fournisseur est disponible.
LIB_Etat = "GPS disponible"
// Demande à suivre le déplacement avec un temps maximum entre deux appels de
// GPSSuitDéplacement(_RécupèrePosition, 1000)
AUTRES CAS
FIN
Dans cette procédure, si le GPS est actif, une procédure spécifique est utilisée pour suivre le déplacement.
WEBDEV - Code Navigateur Cette fonctionnalité n'est pas disponible.

Suivre le déplacement

Pour suivre le déplacement de l'appareil, il suffit d'utiliser la fonction GPSSuitDéplacement en spécifiant le nom de la procédure qui va gérer le déplacement.
Exemple :
GPSSuitDéplacement(_RécupèrePosition, 1000)
Par exemple, le code de la procédure peut être le suivant :
PROCÉDURE _RécupèrePosition(MaPosition)
// Mise à jour des informations sur la position
// Latitude et longitude
LIB_Latitude = ChaîneConstruit("Latitude : %1", MaPosition.Latitude)
LIB_Longitude = ChaîneConstruit("Longitude : %1", MaPosition.Longitude)
// Vitesse
SI MaPosition.VitesseValide = Vrai ALORS
LIB_Vitesse = ChaîneConstruit("Vitesse : %1 m/s", MaPosition.Vitesse)
IMG_VALIDITE_VITESSE = IMG_OK
SINON
LIB_Vitesse = "Vitesse : N/A"
IMG_VALIDITE_VITESSE = IMG_PASOK
FIN
// Altitude
SI MaPosition.AltitudeValide = Vrai ALORS
LIB_Altitude = ChaîneConstruit("Altitude : %1 m", MaPosition.Altitude)
IMG_VALIDITE_ALTITUDE = IMG_OK
SINON
LIB_Altitude = "Altitude : N/A"
IMG_VALIDITE_ALTITUDE = IMG_PASOK
FIN
// Direction
SI MaPosition.DirectionValide = Vrai ALORS
LIB_Direction = ChaîneConstruit("Direction : %1 ° E", MaPosition.Direction)
IMG_VALIDITE_DIRECTION = IMG_OK
SINON
LIB_Direction = "Direction : N/A"
IMG_VALIDITE_DIRECTION = IMG_PASOK
FIN
LIB_Dernière_mise_à_jour = ChaîneConstruit("Dernière mise à jour le %1 à %2.", ...
DateVersChaîne(MaPosition.DateMesure.PartieDate), ...
HeureVersChaîne(MaPosition.DateMesure.PartieHeure))
LIB_Dernière_mise_à_jour.Visible = Vrai
Dans ce code, MaPosition est une variable de type géoPosition. Les différentes propriétés de ce type de variable permettent de connaître toutes les caractéristiques de la position.
WEBDEV - Code Navigateur La procédure WLangage utilisée nécessite des paramètres spécifiques.

Terminer l'utilisation des fonctions GPS

Selon le paramétrage choisi et la fréquence d'appel, les fonctions de géolocalisation peuvent consommer beaucoup de ressources sur le périphérique (batterie, bande passante, etc.). La fonction GPSTermine doit être appelée lorsque les fonctions de localisation ne sont plus utilisées par l'application.
WEBDEV - Code Navigateur Cette fonctionnalité n'est pas disponible.
Quand utiliser quelle fonction ?
FonctionQuand l'utiliser ? PrécisionConsommation d'énergie
géoSuiviXXXSuivi permanent des changements de position y compris lorsque l'application est en arrière-plan.Précision élevée mais la fréquence des notifications est faible et dépendante du système. Faible
GPSSuitDéplacementSuivi permanent des changements de position lorsque l'application est en avant plan.Précision selon la fonction GPSInitParamètre. Consommation selon la fonction GPSInitParamètre.
GPSDétectePositionNotification de la proximité d'une position donnée lorsque l'application est au premier plan. Précision selon la fonction GPSInitParamètre. Consommation selon la fonction GPSInitParamètre.
GPSRécupèrePositionRécupération ponctuelle de la position courante lorsque l'application est en avant plan. Selon les conditions (nuages, en intérieur, ...), la récupération de la position peut être longue.Précision selon la fonction GPSInitParamètre. Selon le nombre d'appels.
GPSDernièrePositionRécupération ponctuelle et immédiate de la dernière position connue de l'appareil.Consommation faible car dépend de quand la dernière récupération réelle a eu lieu. Dépend également de la fonction GPSInitParamètre. Consommation faible.
Fonctions disponibles selon les plateformes

Tableau récapitulatif

Le tableau suivant présente les différentes fonctions de géolocalisation / GPS et les différentes plateformes où elles sont disponibles actuellement (ce tableau peut évoluer au fil des versions) :
Fonctions
WEBDEV - Code Navigateur Code Navigateur
géoAzimutXX
géoDistanceXXX
géoLanceAppliXX
géoRécupèreAdresseXX
géoRécupèreZoneXXX
géoSuiviActiveXX
géoSuiviDésactiveXX
géoSuiviEtatXX
géoSuiviProcédureXX
GPSArrêteDétectionXX
GPSDernièrePositionXXXX
GPSDétectePositionXX
GPSEtatXXXX
GPSInfoXX
GPSInitParamètreXXX
GPSRécupèrePositionXXXX
GPSSuitDéplacementXXXX
GPSTermineXXX
Liste des exemples associés :
WM Geolocalisation Exemples multiplateforme (WINDEV Mobile) : WM Geolocalisation
[ + ] Cet exemple présente comment gérer des recherches de proximité avec géolocalisation :
- recherche autour de moi
- recherche dans une ville, à une adresse donnée, proche d'une adresse.
Les résultats apparaissent dans une zone répétée et dans une carte avec des marqueurs.
Version minimum requise
  • Version 16
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 22/06/2023

Signaler une erreur ou faire une suggestion | Aide en ligne locale