Rechercher dans le blog

Un mardi, une appli #7 : Suivi journalier du coronavirus en 3D

Bonjour, aujourd'hui je vais vous présenter une application réalisée par mon collègue suisse, Arno Fiva. Il a réalisé avec l'API JavaScript d'ArcGIS une application Web représentant la propagation du coronavirus à travers le monde.

I/ L'application

Cette application présente un globe sur lequel nous observons des histogrammes reflétant le nombre de personnes touchées par le coronavirus par pays. À droite, on accède à un volet qui présente des graphes avec le nombre de malades, le nombre de patients guéris et le nombre de morts. Les statistiques sont mondiales et actualisées très fréquemment. Lorsque le curseur de la souris survole un pays, l'histogramme dans le volet de droite se met à jour pour ne montrer que les statistiques du pays que le curseur survole.

II/ L'aspect technique

Pour effectuer cette application, Arno a utilisé l'API JavaScript d'ArcGIS et a chargé les modules & classes suivantes :
require([ "esri/Map", "esri/views/SceneView", "esri/layers/FeatureLayer", "esri/core/promiseUtils", "esri/core/watchUtils", "esri/core/scheduling", ], function (Map, SceneView, FeatureLayer, promiseUtils, watchUtils, scheduling) {

Il affiche plusieurs couches d'entités (FeatureLayer) répertoriant toutes les cas de coronavirus dans une SceneView pour visualiser les données en 3D.

La classe scheduling offre divers utilitaires et fonctions pratiques pour exécuter du code à différentes phases des cadres de navigateur. Le module de planification vous permet d'enregistrer des tâches qui sont exécutées dans chaque image d'animation. Cela peut être utilisé pour synchroniser les mises à jour avec les animations en cours de la vue ou pour animer la vue manuellement en ajustant l'étendue ou la caméra dans chaque image. Par exemple, on peut commander au globe de tourner et lorsqu'on le survole arrêter cela à l'aide de watchUtils.

En effet, watchUtils permet de déclencher une fonction lorsqu'un événement se passe par rapport à une condition vérifiée. Par exemple, lorsqu'on clique dans la vue au moins une fois, on arrête alors de faire tourner le globe. C'est ce qui a été fait ici.
Cela permet également, à chaque fois que l'on survole un pays, de mettre à jour les graphes pour le pays survolé et de mettre le pays survolé en surbrillance.

La classe promiseUtils donne accès à plusieurs méthodes pour travailler avec les promesses. Cette classe permet ici de garantir qu'une fonction d'entrée n'est pas invoquée simultanément plus d'une fois à la fois. Dans notre cas, cela est utile pour les applications interactives avec l'exécution de requêtes statistiques, lors d'événements de mouvement du curseur de la souris. Plutôt que d'exécuter la requête pour chacun de ces événements, vous pouvez exécuter un "debounce", c'est à dire annuler l'exécution de la fonction jusqu'à la fin de l'exécution précédente du même appel de fonction. Cela améliore les performances et l'expérience utilisateur de ces applications.

Tout le code est disponible sur le GitHub d'Arno.

Vous voulez, vous aussi, réaliser des applications Web cartographiques et dynamiques ? N'hésitez pas à consulter ces articles :
- Créer une carte Web en 5 minutes
- Créer une application cartographique complète en 15 minutes
Vous pouvez 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