Le blog francophone consacré
aux technologies Esri

L'API ArcGIS for JavaScript 4.2 est disponible

La nouvelle génération de l'API ArcGIS for JavaScript continue son évolution avec une nouvelle version 4.2 qui introduit de nouveaux widgets, des capacités supplémentaires de smart mapping en 2D et 3D, le support des tuiles vectorielle en 3D, le support du langage Arcade, et l'implémentation de nouveaux événements sur les objets MapView et SceneView.
  
  

Développement de widgets personnalisés

Au delà des widgets fournis par Esri, il est désormais possible de créer ses propres widgets personnalisés en utilisant le nouveau "widget framework". Ce framework permet au développeur de créer des sous-classes de la class "Widget". Pour plus d'information sur le développement de widgets personnalisés, vous pouvez vous référer à la rubrique dédiée dans la documentation en ligne de l'API et notamment les exemples suivants:

Create a custom Hello World widget
Create a custom Recenter widget

Les deux nouveaux widgets LayerList et Print sont basés sur ce framework. Les autres widgets prêts à l'emploi (Home, Search, etc...) seront mis à jour prochainement pour être basés sur ce framework.

Widgets Print et LayerList

Deux nouveaux widgets LayerList et Print ont été développés pour proposer une interface claire et en responsive design.

  


Support des expressions Arcade pour la visualisation

Arcade est un nouveau langage d'expression léger destiné à la création de contenus personnalisés, pour la visualisation et l'étiquetage. Ce langage a été conçu pour être supporté à travers l'ensemble de la plateforme ArcGIS. Dans la version 4.2 de l'API JavaScript, Arcade est pour le moment utilisé pour la visualisation de données basées sur des expressions personnalisées, exécutées à la volée pour fournir les valeurs à la base du rendu cartographique. Arcade fournit les librairies de fonctions utiles au traitement des chaînes de caractères, de nombres, de dates, ... 

 
L'extrait de code ci-dessous montre comment utiliser une expression Arcade dans votre code JavaScript pour construire un rendu résultant d'un calcul sur plusieurs champs de la table attributaire de la couche. 


Arcade est intéressant pour de multiples raisons, notamment parce que les expressions peuvent être enregistrées avec les couches ou les cartes dans le portail ArcGIS Online ou ArcGIs Enterprise. Ceci veut dire que les expressions peuvent être construite par votre application JavaScript et persister à travers l'ensemble de la plateforme ArcGIS pour être utilisée par d'autres membres de l'organisation, que ce soit pour des rendus ou pour de l'étiquetage.

Il est recommandé de lire la documentation Arcade pour plus de détails sur la syntaxe et les fonctions disponibles. De nombreux exemples sont fournis dans l'onglet "Guide".

Plusieurs articles seront publiés dans les prochaines semaines sur arcOrama pour démontrer les capacités d'Arcade.


Une nouvelle implémentation de la classe VectorTileLayer

L'implémentation des couches de tuiles vectorielles (la classe VectorTileLayer) a été totalement ré-écrite afin d'être mieux intégrée à l'API. Cette évolution correspond aussi à la fin de la phase beta et au support officiel des fonds de cartes vectoriels d'ArcGIS Online. L'API JavaScript supporte toujours les spécifications de styles Mapbox (version 8) et les spécifications de tuiles vectorielles MapBox (version 2.1). Les évolutions de cette version 4.2 incluent également: le support de l'affichage des tuiles en 3D dans les scènes web, le support du right-to-left (RTL) pour les étiquettes de la couche, le support de tous les système de projection ArcGIS, et une amélioration significative des artefacts d'affichage des symboles et des étiquettes en limites de tuiles. 

Le fond de carte vectoriel "Navigation" affiché en 3D
Potentiel solaire des bâtiments de Paris
  

Nouveaux événements sur les classes MapView et SceneView

Une série d'événements liés au clavier et à la souris sont désormais gérés pour les classes MapView et SceneView:

double-click - Déclenché après un double-clic dans la vue 2D/3D.
drag - Déclenché lors d'un glissé avec la souris sur la vue 2D/3D.
key-down - Déclenché après qu'une touche du clavier soit appuyée.
key-up - Déclenché après qu'une touche du clavier soir relâchée.
mouse-wheel - Déclenché lors du scrolling avec un périphérique tel que la souris.
pointer-down - Déclenché dès qu'un doigt touche la zone de la vue 2D/3D sur l'écran.
pointer-move - Déclenché dès qu'un doigt se déplace sur la zone de la vue 2D/3D sur l'écran.
pointer-up - Déclenché dès qu'un doigt relâche la zone de la vue 2D/3D sur l'écran.

   

Nuage de points

Les données de type nuages de points (Lidar notamment) peuvent maintenant être visualisées à l'aide de nouvelles classes PointCloudLayer et PointCloud. Visualiser les nuages de points de différentes manières peut aider à extraire des informations importantes en 3D. Avec l'API JavaScript, les données de type nuages de points servies par ArcGIS Online ou ArcGIS Enterprise peuvent être visualisés par leur valeur RVB, par valeur unique, par dégradé de couleurs ou par étalement de valeur, ou par classe de valeurs.

Voir l'exemple de code Point Cloud Layer pour plus de détails.

  

"Query" sur les couches d'élévation des scènes web

Les valeurs d'élévation, dans les scènes web 3D, peuvent être obtenues à partir d'un point et ceci de différentes manières. La première possibilité est d'utiliser la méthode hitTest() qui permet d'obtenir une altitude approximative pour un ScreenPoint donné. Depuis la version 4.2, vous pouvez dorénavant obtenir une valeur d'élévation plus précise à partir d'un point ou d'une polyligne directement depuis la classe ElevationLayer à l'aide de la méthode queryElevation().

L'image ci-dessous illustre un des exemples de code démontrant comment interroger les valeurs d'altitude de deux surfaces d'élévation avant et après un glissement de terrain. Vous pouvez ensuite calculer la différence entre les deux valeurs.


Un autre exemple intéressant sur le même sujet démontre comment interroger les altitudes de la couche d'élévations le long d'un polyligne.


Amélioration des capacités de Smart Mapping

Les visualisations simples ou celles basées sur les données peuvent désormais être générées en utilisant les méthodes de Smart Mapping. Le développeur a le choix entre les 4 nouvelles méthodes suivantes qui fourniront systématiquement des symboles par défaut:

location - pour générer un symbole unique pour toutes les entités de la carte.
color - pour générer des visualisations basées sur les données avec un dégradé de couleurs continu sur un champ de valeurs numériques.
size - pour générer des visualisations basées sur les données avec une variation continue des tailles des symboles sur un champ de valeurs numériques.
univariateColorSize - pour générer des visualisations basées sur les données avec une variation continue de la taille et des couleurs sur un champ de valeurs numériques. Ce type a été conçu en particulier pour des rendus avec des symboles 3D.

Trois widgets ont également ajoutés: ColorSlider, SizeSlider, et UnivariateColorSizeSlider pour permettre à l'utilisateur de l'application d'explorer la distribution des données et modifier les nuances du rendu en modifiant les bornes des classes ou les tailles min/max des symboles, ... pour mettre en évidences des similitudes, des différences, des tendances, dans les données cartographiées.
  

Les workflows de génération des rendus sont conçus pour qu'un utilisateur puisse explorer les données même si elles ne lui sont pas familières. L'idée est de permettre aux développeurs d'implémenter très facilement les capacités de sauvegarde de ces visualisations personnalisées en tant qu'éléments que le portail ArcGIS (couches, cartes web, scènes web) à partir d'une interface utilisateur très simple.

Les exemples de code ci-dessous démontrent comment les widgets de génération de rendus et les widgets de slider peuvent fonctionner ensemble.

Generate data-driven continuous color visualization
Generate data-driven continuous size visualization
Generate univariate continuous size and color visualization in 3D


Animations goTo() personnalisées

Lorsque l'orientation de l'utilisateurs et la correlation entre deux localisations sont importantes, changer le centre de la vue (2D ou 3D) vers une autre localisation doit se faire de manière progressive. Avec la version 4.2 de l'API, la durée et la fonction (easing) de l'animation peuvent être spécifiées par le développeur pour mieux contrôler le mode d'animation.

Dans l'exemple ci-dessous, la vitesse de la caméra accélère graduellement (jusqu'à la puissance 3), avec une durée limite de 4 secondes.
   


Framework de Workers

Un nouveau framework de Workers aide le développeur à améliorer les performances en déportant les tâches lourdes de traitement vers des processus d'arrière-plan (Web Workers HTML5), sans bloquer l'interface de l'utilisateur qui s'exécute dans le processus principal.


A vous donc de poursuivre votre découverte de la version 4.2 à travers les release notes pour plus d'informations sur tous les détails de cette mise à jour de l'API ArcGIS for JavaScript.

Partager cet article:

Rejoindre la discussion

    Les commentaires à propos de cet article: