PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

  • 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
  • Mettre en place le suivi de localisation
  • Présentation
  • Principe et mise en place
  • Fonctionnement selon le mode d'utilisation de l'application
  • 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/iPadApple WatchUniversal Windows 10 AppWindows Mobile
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.
AndroidiPhone/iPadUniversal Windows 10 App Dans les applications téléphoniques, il est possible de :
  • Récupérer des informations sur la dernière position connue de l'appareil.
  • Demander à être notifié lorsque l'appareil approche d'une zone spécifique.
  • Connaître la position actuelle de l'appareil.
  • Récupérer une adresse.
  • ...
Versions 17 et supérieures
iPhone/iPad Certaines fonctions de géolocalisation peuvent désormais être utilisées dans les applications iPhone/iPad.
Nouveauté 17
iPhone/iPad Certaines fonctions de géolocalisation peuvent désormais être utilisées dans les applications iPhone/iPad.
iPhone/iPad Certaines fonctions de géolocalisation peuvent désormais être utilisées dans les applications iPhone/iPad.
Versions 17 et supérieures
iPhone/iPad Certaines fonctions de géolocalisation peuvent désormais être utilisées en mode Universal Windows 10 App.
Nouveauté 17
iPhone/iPad Certaines fonctions de géolocalisation peuvent désormais être utilisées en mode Universal Windows 10 App.
iPhone/iPad Certaines fonctions de géolocalisation peuvent désormais être utilisées en mode Universal Windows 10 App.
AndroidiPhone/iPad Remarques :
  • Versions 17 et supérieures
    Android Le champ Carte permet de visualiser une position. Pour plus de détails, consultez Champ Carte.
    Nouveauté 17
    Android Le champ Carte permet de visualiser une position. Pour plus de détails, consultez Champ Carte.
    Android Le champ Carte permet de visualiser une position. Pour plus de détails, consultez Champ Carte.
  • Versions 21 et supérieures
    AndroidiPhone/iPad Il est également possible de suivre les déplacements de l'utilisateur, même quand l'application est fermée. Pour plus de détails, consultez Mettre en place le suivi de localisation.
    Nouveauté 21
    AndroidiPhone/iPad Il est également possible de suivre les déplacements de l'utilisateur, même quand l'application est fermée. Pour plus de détails, consultez Mettre en place le suivi de localisation.
    AndroidiPhone/iPad Il est également possible de suivre les déplacements de l'utilisateur, même quand l'application est fermée. Pour plus de détails, consultez Mettre en place le suivi de localisation.
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 :
PROCEDURE _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.

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 :
PROCEDURE _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.

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.
AndroidiPhone/iPad
Versions 21 et supérieures
Mettre en place le suivi de localisation

Présentation

Sur un terminal mobile, il est parfois nécessaire de pouvoir suivre les déplacements de l’utilisateur même lorsque l’application mobile est fermée ou en arrière-plan.
Ce suivi de déplacement doit pouvoir être réalisé en consommant le moins possible les ressources de l’appareil mobile (notamment la batterie). Ceci n’est bien entendu possible qu’au prix d’une baisse de la précision du suivi par rapport à un suivi GPS normal.

Principe et mise en place

Pour gérer le suivi de déplacement :
  1. Activez le suivi de déplacement grâce à la fonction géoSuiviActive.
  2. Définissez la procédure appelée lors du changement de position grâce à la fonction géoSuiviProcédure. Cette fonction doit être utilisée dans le traitement d'initialisation du projet.
Il est possible de :
Attention : Le suivi est un suivi de faible précision. Les événements sont envoyés uniquement en cas de changements significatifs de la position et à des intervalles supérieurs à plusieurs minutes. A titre indicatif, les conditions d'envoi par plateforme sont les suivantes :
  • iPhone/iPad Les événements de changement de position ne sont pas envoyés si le déplacement est en dessous de 500 mètres ou si l’intervalle de temps est inférieur à 5 minutes (décembre 2014).
  • Android Les événements de changement de position sont envoyés à un intervalle approximatif allant de 30 secondes à 10 minutes selon la vitesse de déplacement.
Pour un suivi plus précis du déplacement, il est nécessaire d’utiliser la fonction GPSSuitDéplacement. Cependant, cette fonction :
  • nécessite que l'application soit lancée,
  • Android nécessite que l'application soit au premier-plan,
  • consomme plus de batterie.

Fonctionnement selon le mode d'utilisation de l'application

Lorsque l'application est lancée, si un événement de position est reçu, la procédure fournie à la fonction géoSuiviProcédure est automatiquement appelée. Il est possible d’effectuer dans cette procédure n’importe quelle opération de l’application.
Lorsque l’application est arrêtée, si un événement de position est reçu, l'application est relancée en arrière-plan. L'événement "Initialisation" du projet est alors exécuté, puis la procédure spécifiée dans la fonction géoSuiviProcédure.
iPhone/iPad Le système iOS limite les opérations qui peuvent être faites lorsque l’application est lancée en arrière-plan. Ainsi :
  • L’exécution de l’opération d’arrière-plan ne peut pas durer plus de dix secondes
  • Il n’est pas possible d’ouvrir de fenêtre ou d’afficher une interface (il est cependant possible d’envoyer une notification).
Rappel : Pour savoir si l’application a été lancée en arrière-plan, utilisez la fonction ExeInfo avec la constante exeLancement. La constante exeGéoSuivi sera alors renvoyée si l’application a été lancée en arrière-plan par la gestion de suivi de localisation.
Nouveauté 21
Mettre en place le suivi de localisation

Présentation

Sur un terminal mobile, il est parfois nécessaire de pouvoir suivre les déplacements de l’utilisateur même lorsque l’application mobile est fermée ou en arrière-plan.
Ce suivi de déplacement doit pouvoir être réalisé en consommant le moins possible les ressources de l’appareil mobile (notamment la batterie). Ceci n’est bien entendu possible qu’au prix d’une baisse de la précision du suivi par rapport à un suivi GPS normal.

Principe et mise en place

Pour gérer le suivi de déplacement :
  1. Activez le suivi de déplacement grâce à la fonction géoSuiviActive.
  2. Définissez la procédure appelée lors du changement de position grâce à la fonction géoSuiviProcédure. Cette fonction doit être utilisée dans le traitement d'initialisation du projet.
Il est possible de :
Attention : Le suivi est un suivi de faible précision. Les événements sont envoyés uniquement en cas de changements significatifs de la position et à des intervalles supérieurs à plusieurs minutes. A titre indicatif, les conditions d'envoi par plateforme sont les suivantes :
  • iPhone/iPad Les événements de changement de position ne sont pas envoyés si le déplacement est en dessous de 500 mètres ou si l’intervalle de temps est inférieur à 5 minutes (décembre 2014).
  • Android Les événements de changement de position sont envoyés à un intervalle approximatif allant de 30 secondes à 10 minutes selon la vitesse de déplacement.
Pour un suivi plus précis du déplacement, il est nécessaire d’utiliser la fonction GPSSuitDéplacement. Cependant, cette fonction :
  • nécessite que l'application soit lancée,
  • Android nécessite que l'application soit au premier-plan,
  • consomme plus de batterie.

Fonctionnement selon le mode d'utilisation de l'application

Lorsque l'application est lancée, si un événement de position est reçu, la procédure fournie à la fonction géoSuiviProcédure est automatiquement appelée. Il est possible d’effectuer dans cette procédure n’importe quelle opération de l’application.
Lorsque l’application est arrêtée, si un événement de position est reçu, l'application est relancée en arrière-plan. L'événement "Initialisation" du projet est alors exécuté, puis la procédure spécifiée dans la fonction géoSuiviProcédure.
iPhone/iPad Le système iOS limite les opérations qui peuvent être faites lorsque l’application est lancée en arrière-plan. Ainsi :
  • L’exécution de l’opération d’arrière-plan ne peut pas durer plus de dix secondes
  • Il n’est pas possible d’ouvrir de fenêtre ou d’afficher une interface (il est cependant possible d’envoyer une notification).
Rappel : Pour savoir si l’application a été lancée en arrière-plan, utilisez la fonction ExeInfo avec la constante exeLancement. La constante exeGéoSuivi sera alors renvoyée si l’application a été lancée en arrière-plan par la gestion de suivi de localisation.
Mettre en place le suivi de localisation

Présentation

Sur un terminal mobile, il est parfois nécessaire de pouvoir suivre les déplacements de l’utilisateur même lorsque l’application mobile est fermée ou en arrière-plan.
Ce suivi de déplacement doit pouvoir être réalisé en consommant le moins possible les ressources de l’appareil mobile (notamment la batterie). Ceci n’est bien entendu possible qu’au prix d’une baisse de la précision du suivi par rapport à un suivi GPS normal.

Principe et mise en place

Pour gérer le suivi de déplacement :
  1. Activez le suivi de déplacement grâce à la fonction géoSuiviActive.
  2. Définissez la procédure appelée lors du changement de position grâce à la fonction géoSuiviProcédure. Cette fonction doit être utilisée dans le traitement d'initialisation du projet.
Il est possible de :
Attention : Le suivi est un suivi de faible précision. Les événements sont envoyés uniquement en cas de changements significatifs de la position et à des intervalles supérieurs à plusieurs minutes. A titre indicatif, les conditions d'envoi par plateforme sont les suivantes :
  • iPhone/iPad Les événements de changement de position ne sont pas envoyés si le déplacement est en dessous de 500 mètres ou si l’intervalle de temps est inférieur à 5 minutes (décembre 2014).
  • Android Les événements de changement de position sont envoyés à un intervalle approximatif allant de 30 secondes à 10 minutes selon la vitesse de déplacement.
Pour un suivi plus précis du déplacement, il est nécessaire d’utiliser la fonction GPSSuitDéplacement. Cependant, cette fonction :
  • nécessite que l'application soit lancée,
  • Android nécessite que l'application soit au premier-plan,
  • consomme plus de batterie.

Fonctionnement selon le mode d'utilisation de l'application

Lorsque l'application est lancée, si un événement de position est reçu, la procédure fournie à la fonction géoSuiviProcédure est automatiquement appelée. Il est possible d’effectuer dans cette procédure n’importe quelle opération de l’application.
Lorsque l’application est arrêtée, si un événement de position est reçu, l'application est relancée en arrière-plan. L'événement "Initialisation" du projet est alors exécuté, puis la procédure spécifiée dans la fonction géoSuiviProcédure.
iPhone/iPad Le système iOS limite les opérations qui peuvent être faites lorsque l’application est lancée en arrière-plan. Ainsi :
  • L’exécution de l’opération d’arrière-plan ne peut pas durer plus de dix secondes
  • Il n’est pas possible d’ouvrir de fenêtre ou d’afficher une interface (il est cependant possible d’envoyer une notification).
Rappel : Pour savoir si l’application a été lancée en arrière-plan, utilisez la fonction ExeInfo avec la constante exeLancement. La constante exeGéoSuivi sera alors renvoyée si l’application a été lancée en arrière-plan par la gestion de suivi de localisation.
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
Android Android
Versions 17 et supérieures
iPhone/iPad iPhone/iPad
Nouveauté 17
iPhone/iPad iPhone/iPad
iPhone/iPad iPhone/iPad
Universal Windows 10 App Universal Windows App
géoAzimutXX
géoDistanceXXX
Versions 17 et supérieures
géoLanceAppli
Nouveauté 17
géoLanceAppli
géoLanceAppli
XX
Versions 17 et supérieures
géoRécupèreAdresse
géoRécupèreAdresse
XX
Versions 21 et supérieures
géoSuiviActive
Nouveauté 21
géoSuiviActive
géoSuiviActive
XX
Versions 21 et supérieures
géoSuiviDésactive
Nouveauté 21
géoSuiviDésactive
géoSuiviDésactive
XX
Versions 21 et supérieures
géoSuiviEtat
Nouveauté 21
géoSuiviEtat
géoSuiviEtat
XX
Versions 21 et supérieures
géoSuiviProcédure
Nouveauté 21
géoSuiviProcédure
géoSuiviProcédure
XX
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