Scripting : Géolocalisation

Ce chapitre décrit les mécanismes de géolocalisation fournis nativement par Immersive, permettant de représenter dynamiquement la position et le déplacement d’objets géolocalisés dans le jumeau numérique 3D, sans nécessiter de développement spécifique en JavaScript.

Dans cet article

    Afficher plus
    Réduire

    Dans le cas d’un équipement géolocalisé, Immersive met à disposition plusieurs comportements natifs permettant de représenter visuellement un changement de position d’un objet dans son environnement et ne nécessitent pas de développement spécifique en JS mais seulement une configuration au niveau de l’équipement.

    Les 3 comportements disponibles dans les suivants :

    • GeoTracking : Téléport d’un objet géolocalisé
    • GeoMove : Suivi en temps réel d’un objet géolocalisé avec orientation
    • NavMeshMove : Suivi d’un objet avec contrainte de déplacement sur le graph de navigation.

    Les positions GPS remontées par une variable de type GISVector doivent respecter le format suivant : longitude;latitude

    Exemple de position gps valide : 7.841257629258633;48.552757624772426

    Activation de GeoTracking

    Le GeoTracking permet de modifier la position d’un objet sur le plan en fonction de sa position GPS. A chaque réception d’une position GPS, l’objet associé sera téléporté à la position correspondante sur le plan.

    Ce type de tracking est utilisé dans le cas d’une remontée de position GPS non précise ou dont la fréquence est faible.

    Afin d’associer un comportement de GeoTracking à un équipement, il suffit de lui créer une variable portant le nom GeoTracking. En effet un comportement a été enregistré par défaut par Immersive avec la règle d’importation $(GeoTracking).

    Le comportement peut récupérer la position GPS de l’objet de 2 façons différentes :

    • Via une variable de type GISVector portant le nom GeoPos
    • Via 2 variables séparées de type Single portant les noms Longitude et Latitude

    Activation du GeoMove

    Le GeoMove est une version avancée du GeoTracking. Il s’occupe d’animer l’objet sur le plan entre les différentes positions GPS afin d’obtenir un mouvement fluide.

    Ce type de tracking est utilisé dans le cas d’une remontée de position GPS très précise (quelques centimètres) et avec une fréquence élevée (< 1 s).

    Afin d’associer un comportement de GeoMove à un équipement, il suffit de lui créer une variable portant le nom GeoMove. En effet, un comportement par défaut a été enregistré par Immersive avec la règle d’importation $(GeoMove).

    Le comportement peut récupérer la position GPS de l’objet de deux façons différentes :

    • Via une variable de type GISVector portant le nom GeoPos
    • Via deux variables séparées de type Single portant les noms Longitude et Latitude

    Dans le cas où l’objet a besoin d’être orienté en plus de sa position, deux solutions s’offrent à nous :

    • Fournir l’orientation de l’objet via un capteur d’orientation (solution recommandée)
      • Ajouter une variable Orientation à l’objet contenant la valeur d’orientation
    • Fournir une information indiquant si l’objet est en marche avant ou en marche arrière, ainsi que la dernière position GPS connue en plus de la précédente.
      • Ajouter une variable Reversing de type Boolean, dont la valeur est true si la marche arrière est enclenchée
      • Ajouter une variable PreviousCoordinates correspondant à la position GPS précédemment mesurée
    "Supervision.UpdatesPeriod" : 0.5

    Activation du NavMeshMove

    Ce type de tracking est utilisé dans le cas d’une remontée de position GPS plus ou moins précise, et dont la fréquence n’est pas assez importante pour être animer par le GeoMove. Pour pouvoir l’utiliser, il est nécessaire d’avoir un graph de navigation sur la carte.

    Quand une position GPS est remontée, l’objet tracké regarde sa position actuelle et la position vers laquelle il doit aller, il cherche les points du graph de navigation le plus proche de ces 2 positions, et cherche un chemin valide.

    Si un chemin valide est trouvé, l’objet sera animé du point A vers le point B en suivant le chemin calculé.

    Afin d’associer un comportement de NavMeshMove à un équipement, il suffit de lui créer une variable portant le nom NavMeshMove. En effet, un comportement par défaut a été enregistré par Immersive avec la règle d’importation $( NavMeshMove).