Le blog francophone consacré
aux technologies Esri

L'API JavaScript ArcGIS passe en version 4.11

Présentée en avant-première lors du Developer Summit 2019, la version 4.11 (et 3.28) de l’API JavaScript ArcGIS est désormais disponible. Cette version 4.11 est probablement une des plus importantes depuis la première version de la génération 4.x. Elle propose des fonctionnalités complétées pour atteindre l'équivalence avec l'API 3.x mais aussi, et surtout, des innovations qui placent aujourd'hui l'API JavaScript ArcGIS au premier rang des APIs de WebMapping.

Un nouveau widget "Editor"

Les fonctionnalités de mise à jour spatiale et attributaire étaient présentes depuis plusieurs versions. Cependant, le widget Editor était encore attendu par les développeurs pour proposer une expérience prête à l'emploi pour l'édition des couches d'entités dans leur application web. Le widget Editor propose deux flux de travail: soit pour ajouter des entités, soit pour modifier/supprimer des entités existantes dans une couche d'entités modifiables. Le widget reconnaît et propose automatiquement les couches d'entités modifiables de la carte (sauf paramétrage spécifique du widget).
 
Voir cet exemple en live
     
 
Prise en charge du GeoJSON

Une nouvelle classe GeoJSONLayer permet désormais de travailler directement avec une source de donnée GeoJSON en 2D et en 3D. GeoJSON est un format qui permet d’encoder diverses structures de données géographiques. Les couches de type GeoJSONLayer offrent les mêmes capacités puissantes dont disposent les couches de type FeatureLayer: performances d'affichage (à condition que le volume de données reste limité), capacités de projection, opérations de mise à jour, smart-mapping, interrogation et filtrage.

Voir cet exemple en live
  

Mises à jour 3D

Plusieurs évolutions intéressantes sont à noter pour la création et la modification de données en 3D, notamment la prise en charge de la 3D par le widget Sketch et l'intégration de modèles 3D au format glTF.

Voir cet exemple en live
  
Introduit en 2D en version 4.10, le widget Sketch permet désormais la création et la mise à jour de points, de lignes et de polygones en 3D dans une SceneView. En utilisant la classe SketchViewModel, vous pouvez déplacer, mettre à l'échelle et faire pivoter des points portant des symboles 3D.

Voir cet exemple en live
  
La version 4.11 propose également un workflow efficace pour importer des modèles 3D (côté client) en utilisant le format glTF. Ces modèles décrits en JSON peuvent être utilisés pour représenter des objets 3D réalistes tels que des bâtiments, des véhicules, du mobilier urbain, des arbres, ....
 
 
Nouvelles capacités sur les couches d'entités
 
Cette nouvelle mouture de l'API JavaScript apporte plusieurs évolutions intéressantes sur la classe FeatureLayer.
   
Une implémentation initiale (qui évoluera dans les prochaines versions) est proposée pour activer le filtrage temporel sur les entités d'une couche afin que les requêtes (côté serveur et côté client) renvoient des résultats pour une période de temps donnée. La classe TimeInfo vous permettra d'accéder aux informations de temps des couches ayant cette dimension temporelle activée.

Des capacités de filtrage côté client sont désormais disponibles dans MapViews (2D) et les SceneViews (3D) à l'aide d'une nouvelle classe FeatureFilter. Extrêmement rapide à l'exécution, grâce à ces filtres côté client, seules les entités correspondant aux conditions du filtre sont affichées, en fonction d'attributs, de géométrie, de distance à des géométries ou même d'une période temporelle.

Voir cet exemple en live

Très intéressant pour la cartographie et l'ergonomie de votre application, une nouvelle classe FeatureEffects permet, dans les MapViews, de représenter de manière dynamique les entités qui satisfont les critères d'un filtre et celles qui ne le satisfont pas. Typiquement, vous pouvez représenter avec leur symbole normal les entités qui remplissent les conditions de votre filtre et mettre en grisé les autres entités pour les rendre moins visibles sur la carte.

Voir cet exemple en live
 
 
Utiliser des rendus par densité de points

L'API JavaScript 4.11 permet l'utilisation d'un nouveau type de rendu consistant à convertir les valeurs de différents attributs numériques d'une couche de polygone en une série de points. Chaque point représentant une valeurs fixe. La classe DotDensityRenderer dessine de manière aléatoire des points pour représenter les attributs de chaque polygone afin d'aider l'utilisateur à visualiser la densité relative de ces attributs par rapport à la surface de ce dernier.

Voir cet exemple en live
   
 
Autres évolutions...

L'API 4.11 supporte désormais le chargement d'une table (sans géométries) en utilisant la classe FeatureLayer et l'URL du point d'accès Rest de la table non-spatiale.

Le widget FeatureForm propose désormais des options pour paramétrer la visibilité de certains champs (ou groupes de champs) de la table en utilisant la classe FieldConfig et FieldGroupConfig et une expression Arcade. Très intéressant, ceci permet de définir des comportements d'affichage conditionnel de certains attributs lors de la mise à jour des valeurs dans le formulaire de saisie. Voir cet exemple de mise à jour avancée.
   
Les SceneViews tirent désormais avantage des capacités HiDPI de l'écran de l'application pour afficher les éléments, en haute-résolution sur la propriété devicePixelRatio du navigateur.  



Si vous souhaitez découvrir la liste complète des nouveautés, des modifications et des corrections de bugs, vous pouvez consulter la page What's New et la liste des nouveaux exemples de code.
 
Je n'ai pas évoqué dans cet article la version 3.28, cette dernière propose quelques évolutions notables que vous retrouverez dans cette page de l'aide en ligne.
  

Partager cet article:

Rejoindre la discussion

    Les commentaires à propos de cet article: