DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions standard / Fonctions de géolocalisation
  • Cas particuliers
  • Fonctionnement sous iPhone/iPad
  • Permissions requises
WINDEV
WindowsLinuxJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac Catalyst
Autres
Procédures stockées
Initialise les paramètres des fonctions WLangage de géolocalisation et recherche un fournisseur de localisation.
Pour déterminer la position d'un périphérique, il est généralement possible d'utiliser deux sortes de "fournisseurs de localisation" :
  • le réseau de satellites GPS.
  • la triangulation effectuée à partir du réseau d'antennes mobiles et Wi-Fi.
Chaque fournisseur diffère par la précision de ses informations, sa consommation d'énergie et la configuration matérielle requise (présence d'une puce GPS, accès Internet, etc.).
Exemple
AndroidWidget Android
// Recherche d'un fournisseur de localisation capable de renseigner sur la vitesse
// consommant une quantité moyenne d'énergie et fournissant une précision de mesure élevée
GPSInitParamètre(gpsAuto, gpsPrécisionElevée + gpsVitesse + gpsEnergieMoyenne)
Syntaxe
GPSInitParamètre(<Fournisseur recherché> [, <Options>])
<Fournisseur recherché> : Constante de type Entier
Type de fournisseur de localisation souhaité.
gpsAutoDétermine le fournisseur le plus adapté répondant aux critères spécifiés dans le paramètre <Options>.
gpsRéseauCalcule la position en utilisant le réseau d'antennes mobiles ou Wi-Fi.
gpsSatelliteCalcule la position en utilisant le réseau des satellites GPS.

WINDEViPhone/iPadWidget IOSMac Catalyst Ce paramètre n'est pas pris en compte.
<Options> : Combinaison optionnelle de constantes de type Entier
Critères de sélection du fournisseur de localisation.
AndroidWidget Android Ce paramètre est utilisé si le paramètre <Fournisseur recherché> correspond à la constante gpsAuto. Dans les autres cas, le paramètre <Options> est ignoré.
Les valeurs possibles sont :
gpsAltitudeIndique si le fournisseur doit pouvoir renseigner l'altitude du périphérique.
WINDEV Cette constante n'est pas disponible.
gpsDirectionIndique si le fournisseur doit pouvoir renseigner la direction du déplacement du périphérique.
WINDEV Cette constante n'est pas disponible.
gpsEnergieElevéeIndique si le fournisseur peut requérir une quantité d'énergie élevée.
WINDEV Cette constante n'est pas disponible.
gpsEnergieFaibleIndique si le fournisseur doit requérir une faible quantité d'énergie.
WINDEV Cette constante n'est pas disponible.
gpsEnergieMoyenneIndique si le fournisseur peut requérir une quantité moyenne d'énergie.
WINDEV Cette constante n'est pas disponible.
gpsPrécisionElevéeCalcul de la position avec une précision élevée.
gpsPrécisionFaibleCalcul de la position avec une précision faible.
gpsVitesseIndique si le fournisseur doit pouvoir renseigner la vitesse de déplacement.
WINDEV Cette constante n'est pas disponible.

Remarques :
  • Les constantes gpsPrécisionxx sont exclusives entre elles.
  • Les constantes gpsEnergiexx sont exclusives entre elles.
  • Aucune constante n'est obligatoire. Si aucune constante n'est précisée, la fonction recherchera par défaut un fournisseur de localisation consommant le moins d'énergie possible avec une précision quelconque et sans demande de caractéristiques particulières.
Remarques

Cas particuliers

  • AndroidWidget Android Il est possible de connaître l'état de disponibilité de fournisseur de géolocalisation grâce à la fonction GPSEtat.
  • AndroidWidget Android Pour connaître les caractéristiques du fournisseur de localisation initialisé par la fonction GPSInitParamètre, utilisez la fonction GPSInfo.
  • Selon le type d'appareil sur lequel l'application est lancée, il ne sera pas possible de trouver un fournisseur correspondant à tous les critères spécifiés (pas de puce GPS, pas d'abonnement Internet, ...).
    Si aucun fournisseur ne correspond aux critères spécifiés, les critères seront abandonnés les uns après les autres jusqu'à obtention d'un fournisseur valide en suivant l'ordre suivant : consommation d'énergie, précision, direction, vitesse et altitude.
  • Les fonctions de géolocalisation peuvent, selon le paramétrage choisi et la fréquence d'utilisation, consommer beaucoup de ressources sur le périphérique (batterie, bande passante, ...). Lorsque les fonctions de géolocalisation ne sont plus utilisées par l'application, il faut utiliser la fonction GPSTermine.
  • Si une fonction de géolocalisation est appelée sans que les paramètres n'aient été définis par la fonction GPSInitParamètre, l'application tentera d'utiliser la localisation par GPS en premier puis celle par le réseau d'antennes mobiles si le système GPS n'est pas disponible.
  • Les fonctions GPS ne permettent pas de faire de la géolocalisation "indoor" : il n'est pas possible de se positionner uniquement à l'aide de bornes Wi-Fi.
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.
AndroidWidget Android

Permissions requises

L'utilisation de cette fonction entraîne la modification des permissions requises par l'application.
Permission requise : ACCESS_FINE_LOCATION.
Spécificité Android 11 : L'utilisation de cette fonction nécessite la mise en place de la permission ACCESS_BACKGROUND_LOCATION permettant la localisation de l'appareil.
Cette permission permet d'autoriser l'utilisation de la fonction lorsque l'application est en arrière-plan.
Si l'application nécessite la localisation en arrière-plan, il faut :
  • Ajouter manuellement la permission "ACCESS_BACKGROUND_LOCATION" dans l'assistant de génération de l'application Android.
  • Demander explicitement la permission de localisation en arrière-plan à l'utilisateur avec la fonction PermissionDemande. Par exemple :
    PermissionDemande(permLocalisationEnArrièrePlan, Callback)
    PROCÉDURE INTERNE Callback(p est une Permission)
    	SI p.Accordé ALORS
    		// Utilisation possible des fonctions nécessitant la localisation en arrière-plan
    	FIN
    FIN
Une fenêtre permet à l'utilisateur de :
  • accepter l'accès à la position de l'appareil avec l'application en arrière-plan,
  • limiter l'accès à la position à l'application active,
  • refuser l'accès à la position.
L'utilisateur peut également modifier son autorisation à posteriori dans les réglages de Android.
Remarques :
  • Respectez les spécifications Google concernant les applications utilisant la localisation en arrière-plan. Pour plus de détails, consultez https://support.google.com/googleplay/android-developer/answer/9799150. Si ces conditions ne sont pas remplies (notamment les conditions d'information de l'utilisateur), les applications pourront ne pas obtenir l'autorisation de publication sur Play Store.
  • La demande de permission de localisation en arrière-plan ne doit être effectuée que si la permission de localisation a été accordée. Dans le cas contraire, la fonction PermissionDemande échouera.
  • Si le choix de l'utilisateur lors de la demande de permission de localisation en arrière-plan est plus restrictif que le choix effectué lors de la demande de permission de localisation, l'application sera automatiquement relancée.
  • Sur les appareils en version inférieure à Android 10, si la permission de localisation a été accordée à l'application, la demande de permission de localisation en arrière-plan sera accordée sans affichage de fenêtre.
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.
Android GPS Android (WINDEV Mobile) : Android GPS
[ + ] Cet exemple montre l'utilisation des fonctions GPS du WLangage dans une application Android.
Il permet de récupérer à intervalle régulier :
- La latitude
- La longitude
- L'altitude
- La vitesse
- la direction
Composante : wd300java.dll
Version minimum requise
  • Version 15
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 16/09/2024

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