Rechercher dans le blog

Un mardi, une appli #5 : Câbles sous marins dans le monde

Bonjour, aujourd'hui je vais vous présenter une application réalisée avec l'ArcGIS API for JavaScript et développée par Esri, permettant de visualiser tous les câbles sous-marins posés dans le monde depuis 1989.

Un câble sous-marin est un câble posé sur le fond marin (ou enterré) et destiné à acheminer des télécommunications ou à transporter de l'énergie électrique.
La plupart des télécommunications mondiales transitent par des câbles sous-marins (263 en 2014). Aujourd'hui plus de 99 % du trafic intercontinental, données et téléphone, est transmis sous les océans. Environ 380 câbles sous-marins transportent la quasi-totalité du trafic Internet intercontinental mondial, via environ 1000 stations d’atterrissage.

Related image
Câble sous-marin

L'application

Avec cette application, vous pouvez visualiser tous les câbles sous-marins mis en place dans le monde de 1989 à 2018. L’application vous propose un volet à gauche pour filtrer les entités représentant les câbles sur la carte. Vous pouvez les filtrer selon plusieurs critères :
- sur une année, pour par exemple visualiser tous les câbles sous-marins datant d'une année précise
- selon une ville pour visualiser tous les câbles sous-marins passant par cette ville
- ou alors directement, sélectionner un câble spécifique dans la liste.

En cliquant sur un câble, tous les autres sont masqués et vous êtes centrés sur celui-ci, vous avez dans le volet à gauche sa date de mise en place, son nom, le site Web du câble en question (s'il existe) et les points d’atterrissage du câble sur les continents qu'il dessert.

L'aspect technique

Pour pouvoir visualiser les données en 3D sur tout le globe terrestre, l'application prend place dans une SceneView avec un fond de carte satellite. Les couches de données représentées sont de types GraphicsLayer, il y en a deux, l'une représentant les câbles sous-marins et l'autre les villes dans le monde par lesquelles les câbles sont reliés. Cette application tire parti des GraphicsLayer mais pourrait aujourd'hui utiliser les FeatureLayer pour représenter cette donnée, car bien plus adaptée pour un affichage de masse sur une interface utilisateur et s'adaptant aux différents niveaux de zoom. L'avantage principale des GraphicsLayer est de pouvoir créer des géométries à la volée dans votre application Web comme ici où on dessine très simplement les géométries avec les coordonnées directement dans l'application.
Il serait alors tout à fait envisageable de remplacer les GraphicsLayer par des FeatureLayer comme dans la carte Web ci-dessous :
Le paramètre ElevationInfo est uniquement valable dans une SceneView et permet de placer les graphiques sur l'axe vertical Z. On définit alors dedans quel référentiel on applique avec la propriété mode (hauteur absolue, hauteur relative au sol ...) et la propriété offset est la valeur de l'élévation sur l'axe Z selon le mode choisi. Elle est en mètres par défaut si le la propriété unit n'est pas spécifiée.





Les requêtes dans l'ArcGIS API for JavaScript

Les Query

Cette classe définit des paramètres pour exécuter des requêtes d'entités à partir d'une couche ou d'une vue de couche. Une fois les propriétés d'un objet Query définies, il peut ensuite être transmis à une fonction exécutable, qui renverra les fonctionnalités dans un FeatureSet (tableau qui contient les entités de la couche qui satisfont la requête).
Il existe trois types de requêtes: les requêtes attributaires, spatiales et statistiques. Vous pouvez rechercher des entités dans l'une de ces catégories ou utiliser des éléments de chacune dans une seule requête.
On peut alors requêter une couche (CSVLayer, FeatureLayer, GeoJSONLayer, StreamLayer, SceneLayer) avec une fonction queryFeatures() qui exécute une requête sur le service d'entités et renvoie un FeatureSet, accessible à l'aide de la méthode .then () une fois la promesse résolue.

Les QueryTask

Les QueryTask permettent d'exécuter différents types d'opérations de requête sur une couche. La méthode la plus couramment utilisée dans cette classe est execute(), qui exécute la requête telle que définie dans l'objet Query transmis en tant que paramètre à la fonction. QueryTask.execute() renvoie une promesse qui se résout en un FeatureSet.
Avec les QueryTask, vous pouvez également obtenir en utilisant d'autres méthodes : le nombre d'entités qui satisfont la requête, l'étendue des entités, les entités associées ou les enregistrements associés à une autre entité, les pièces jointes des entités ou les numéros IDs des entités.

Vous voulez vous aussi réaliser des applications Web cartographiques et dynamiques? N'hésitez pas à souscrire à un plan gratuit ArcGIS for Developers pour développer vos propres applications cartographiques 2D ou 3D ! Cet article résume ce que vous obtiendrez. Et pour en savoir sur l'API c'est ici.

Aucun commentaire:

Enregistrer un commentaire