DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions standard / Fonctions de géolocalisation
  • Propriétés récupérées
  • Notes
  • Fonctionnement sous iPhone/iPad
  • Spécificité Android 12
  • Navigateurs autorisant la géolocalisation
WINDEV
WindowsLinuxJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac Catalyst
Autres
Procédures stockées
GPSSuitDéplacement (Fonction)
En anglais : GPSFollowMovement
Demande à être notifié périodiquement de la position courante du périphérique.
Exemple
// Branche une procédure pour recevoir régulièrement la position du périphérique
GPSFollowMovement(ProcDeplacement)
// Procédure
PROCEDURE ProcDeplacement(pos is geoPosition)

Info(" Latitude : " + pos.Latitude)  
Info(" Longitude : " + pos.Longitude)
Syntaxe
AndroidWidget AndroidiPhone/iPadWidget IOSMac Catalyst

Activer le mécanisme de notification (sous un mobile) Masquer les détails

GPSSuitDéplacement(<Procédure WLangage> [, <Délai> [, <Distance>]])
<Procédure WLangage> : Nom de procédure
Nom de la procédure WLangage appelée à chaque notification.
Cette procédure est de la forme :
PROCEDURE <Nom de la Procédure>(<Position>)
Le paramètre <Position> est une variable de type géoPosition contenant les informations sur la position de l'appareil au moment de la notification.
<Délai> : Entier optionnel ou Durée optionnelle
Délai minimal (en centièmes de seconde) entre deux notifications. Si ce paramètre n'est pas spécifié, le délai minimal sera de 60 secondes.
Remarque : Ce paramètre peut correspondre à :
  • un entier correspondant au nombre de centièmes de seconde,
  • une variable de type Durée,
  • l'indication directe de la durée (par exemple 1 s ou 10 ms).
<Distance> : Réel optionnel
Distance minimale (en mètres) entre deux notifications.
Si ce paramètre n'est pas spécifié, la distance minimale sera de 5 mètres.
WEBDEV - Code Navigateur

Activer le mécanisme de notification en code Navigateur Masquer les détails

GPSSuitDéplacement(<Procédure WLangage>)
<Procédure WLangage> : Nom de procédure
Nom de la procédure WLangage appelée à chaque notification. Cette procédure est de la forme :
PROCEDURE <Nom de la Procédure>(<Position>, <Erreur>)
où :
  • Le paramètre <Position> est une variable de type géoPosition contenant les informations sur la position de l'appareil au moment de la notification. Pour savoir si les propriétés Vitesse, Précision, Direction ou Altitude d'une variable de type géoPosition ont été renseignées lors de la récupération de la position, utilisez les propriétés VitesseValide, PrécisionValide, DirectionValide et AltitudeValide.
  • <Erreur> est une constante de type Entier correspondant au code d'erreur et pouvant prendre les valeurs suivantes :
    gpsErreurDroitLe navigateur n'a pas les droits pour utiliser la géolocalisation.
    gpsErreurOKAucune erreur n'a été détectée.
    gpsErreurPositionImpossible de déterminer la position (erreur interne du fournisseur d'accès par exemple).
    gpsErreurTimeoutLa position n'a pas pu être récupérée dans le temps imparti.

Désactiver le mécanisme de notification

GPSSuitDéplacement()
Remarques
AndroidWidget AndroidiPhone/iPadWidget IOSMac Catalyst

Propriétés récupérées

  • Pour savoir si les propriétés Vitesse, Précision, Direction ou Altitude d'une variable de type géoPosition ont été renseignées lors de la récupération de la position, utilisez les propriétés VitesseValide, PrécisionValide, DirectionValide et AltitudeValide.
  • Pour réinitialiser une variable de type géoPosition, utilisez la fonction VariableRAZ.
  • AndroidWidget AndroidiPhone/iPadWidget IOSMac Catalyst Il est conseillé d'initialiser les paramètres du fournisseur de localisation à l'aide de la fonction GPSInitParamètre avant de récupérer une position.
  • Les informations de positionnement récupérées correspondent à la dernière position connue du périphérique : elles peuvent donc ne pas correspondre à la position actuelle du périphérique si par exemple le périphérique a été déplacé alors que le signal GPS n'était pas valide. Il est possible de connaître la date et l'heure à laquelle la position a été calculée grâce à la propriété DateMesure de la variable géoPosition.
  • Les propriétés Vitesse, Précision, Direction et Altitude seront renseignées uniquement si le fournisseur de localisation le permet (dans le cas contraire, elles prendront leur valeur par défaut).
    AndroidWidget AndroidiPhone/iPadWidget IOSMac Catalyst Le fournisseur de localisation peut être paramétré grâce à la fonction GPSInitParamètre.
AndroidWidget AndroidiPhone/iPadWidget IOSMac Catalyst

Notes

  • Les fonctions de géolocalisation peuvent consommer beaucoup de ressources sur le périphérique (batterie, bande passante, etc.). Il est conseillé de ne pas fixer de valeurs trop petites pour les paramètres de délai et de distance minimale entre deux notifications.
  • AndroidiPhone/iPadWidget IOSMac Catalyst Il est possible de réaliser un suivi de géolocalisation en arrière-plan sans consommer de ressources via les fonctions géoSuiviActive, géoSuiviDésactive, géoSuiviEtat et géoSuiviProcédure. Pour plus de détails, consultez Suivi de localisation.
  • iPhone/iPadWidget IOSMac Catalyst Lors de la génération de l'application, il est possible d'autoriser l'appel à la fonction GPSSuitDéplacement quand l'application est en arrière-plan (option "Autoriser les fonctions GPSSuitDéplacement et BeaconDétectePrécis à être appelées quand l'application est en arrière-plan" dans l'étape "Configuration" de l'assistant). Dans ce cas, la géolocalisation se poursuivra lorsque l'application sera en arrière-plan ou lorsque l'appareil sera en veille. Pour plus de détails, consultez Générer une application iOS.
  • Pour ne plus recevoir de notifications, appelez la fonction GPSSuitDéplacement sans paramètre ou appelez la fonction GPSTermine.
iPhone/iPadWidget IOSMac Catalyst

Fonctionnement sous iPhone/iPad

Au premier lancement d'une fonction GPS, le système demande à l'utilisateur l'autorisation d'effectuer une géolocalisation. En cas de refus de l'utilisateur, toutes les fonctions GPS utilisées dans la suite de l'application échoueront (erreur fatale).
Pour ré-autoriser l'utilisation du GPS pour cette application, il est nécessaire de modifier la configuration système de l'application.

Spécificité Android 12

Pour que la procédure appelée par la fonction GPSSuitDéplacement soit exécutée lorsque l'application est en arrière-plan, il est nécessaire de lancer un thread persistant (fonction ThreadPersistant).
WEBDEV - Code Navigateur

Navigateurs autorisant la géolocalisation

Lors de l'appel à une fonction de géolocalisation, le navigateur demande l'autorisation de localiser.Remarque : A partir de Chrome 50 (y compris sur Android), la fonction GPSSuitDéplacement ne peut être utilisée que sur des sites sécurisés (via un certificat SSL par exemple). Si le site n'est pas sécurisé, la fonction ne renvoie pas un résultat exploitable. Lors de test en local (localhost), la fonction fonctionne correctement.
Composante: wd300java.dll
Version minimum requise
  • Version 15
Documentation également disponible pour…
Commentaires
GPS Functions
https://forum.pcsoft.fr/fr-FR/pcsoft.br.windev/519-busca-endereco-rota-endereco-das-coordendas-523/read.awp?hl=enderecodascoordenadas

https://forum.pcsoft.fr/fr-FR/pcsoft.br.windev/2875-informatica-exemplo-google-maps-com-json-retornando-distancia/read.awp?lastview
BOLLER
10 nov. 2018

Dernière modification : 01/10/2024

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