Rechercher dans le blog

Les nouveautés de la version 4.33 de l’API JavaScript d’ArcGIS

La version 4.33 de l'API JavaScript d'ArcGIS est disponible ! Cette mise à jour contient de nombreuses fonctionnalités très attendues pour améliorer la productivité, simplifier les workflows et proposer des expériences plus immersives. Découvrez-les dans cet article !

Edition par lot

Cette capacité était très attendue : l'édition par lot dans le widget Editor vous permet de sélectionner plusieurs entités, issues d’une ou plusieurs couches, et modifier leurs attributs simultanément. Le déplacement ou la suppression d’un groupe d’entités se fait également d’un simple clic.

Nouvel endpoint CDN pour les composants

Le point de terminaison CDN pour les composants a été mis à jour pour offrir un modèle de version plus simple et cohérent.
Le nouveau modèle est le suivant : https://js.arcgis.com/{version-number}/{component-package}/

Mise en valeur d'une zone d'une scène 3D

La nouvelle fonctionnalité Focus Area permet d’attirer l’attention sur une partie spécifique d’une scène 3D. Vous pouvez appliquer un style sombre ou lumineux pour créer un contraste visuel, ou utiliser des contours colorés pour distinguer plusieurs zones d’intérêt.
Découvrez cela plus en détail dans cet extrait de code

Affichage des étiquettes sur des entités multipoints

Cette version permet l’affichage des étiquettes sur des entités multipoints, une évolution très attendue dans la communauté des développeurs.

Modifications client-side sur les tuiles 3D (3D Tiles)

Le support des modifications côté client sur les couches IntegratedMesh3DTilesLayer vous permet désormais de masquer, découper ou remplacer une partie d’un maillage 3D en utilisant la classe SceneModification. Ces modifications sont persistantes dans les scènes web. Vous pouvez désormais adapter dynamiquement un modèle 3D pour mettre en avant une zone de travaux, par exemple.
Découvrez cela dans cet extrait de code.

Cartes par pics

Un nouveau style de représentation, le thème Spike, permet de symboliser des valeurs numériques avec des pics verticaux. Il est idéal pour des jeux de données avec des valeurs extrêmes (comme par exemple une carte de population par quartier). Contrairement aux symboles gradués, les pics peuvent faciliter la perception des différences relatives entre les valeurs, en particulier lorsque les données présentent un large éventail de valeurs.
Voici les styles de symboles disponibles pour ce nouveau type de carte :

Impression des directions  

Le widget Direction permet maintenant d’exporter les itinéraires calculés au format imprimable (en version beta).

Échelles de visibilité pour les couches 3D

Il est désormais possible de gérer la visibilité des couches 3D de manière fluide selon l’échelle. Contrairement aux versions précédentes où la visibilité était déterminée entité par entité (ce qui pouvait entraîner un affichage partiel), cette nouvelle approche garantit qu’une couche entière est soit visible, soit masquée en fonction de l’échelle, ce qui offre une expérience plus cohérente et prévisible. Par exemple, une carte peut d’abord afficher les accidents sous la forme d'une carte de chaleur sur un fond topographique 3D, puis, en zoomant, basculer vers des points individuels et activer un maillage 3D pour un rendu plus réaliste, donnant à l'utilisateur potentiellement plus de contexte sur pourquoi ces accidents ont eu lieu.

Expérience d'analyse 3D personnalisée

Vous pouvez désormais lancer des analyses interactives en 3D de manière totalement programmable grâce à la méthode view.place(). Disponible pour toutes les capacités d’analyse 3D (champs de vision, ligne de visée, mesures…), elle permet de déclencher des opérations d’analyse dans une interface personnalisée — par exemple via une barre d’outils ou un processus en plusieurs étapes. Vous pouvez le tester ici.

Mieux comprendre l'analyse des ombres

Une nouvelle option Discrete Context dans le widget Shadow Cast enrichit les analyses d’ombres en superposant les zones d’ombre générées à différents moments de la journée. En plus de l’affichage des zones dépassant un seuil (ici en rouge), on peut visualiser les périodes exactes d’occultation (ici en gris). Cette nouvelle fonctionnalité, très utile pour comprendre l’évolution de la lumière naturelle au fil des heures, est à tester dans cet extrait de code.

Meilleur support de l'imagerie orientée

L’imagerie orientée s’améliore sur plusieurs plans :
Amélioration des capacités de mesure : des nouveaux outils de mesure triangulée permettent aux utilisateurs de calculer la distance, la surface et l'emplacement en croisant les vecteurs des points de mesure capturés à partir de deux points de vue différents. Ces outils améliorent la précision des mesures dans une zone d'intérêt définie ;
Exploration des images adjacentes : la transition entre les images adjacentes peut maintenant se faire à l'aide de flèches directionnelles, ou entre les images en fonction d'un champ défini par l'utilisateur à l'aide de boutons précédent/suivant ;
Support des vidéos :  vous pouvez maintenant visualiser et interagir avec les vidéos à l'aide de commandes telles que la lecture, la pause, le curseur vidéo et le bouton audio. Pendant la lecture, des outils tels que l'affichage de l'empreinte, l'emplacement de la caméra et l'amélioration de l'image sont disponibles.

Enrichissement des diagrammes 

Le composant Charts (en beta) évolue avec des optimisations et nouvelles possibilités :
  • Modèle de programmation simplifié pour la création et la modification de graphiques lors de l'utilisation du modèle de graphiques ;
  • Une performance plus rapide, obtenue en optimisant la façon dont les données sont regroupées en catégories basées sur des intervalles ou des plages spécifiques ;
  • Export des graphiques sous forme d'images ou de fichiers CSV (à l'exception des diagrammes en boîte et des diagrammes de dispersion) ;
  • Sensibilité temporelle : les diagrammes peuvent s’adapter à l’étendue temporelle de la carte.

Visualisation de fichier Parquet

Le nouveau type de couche ParquetLayer permet la visualisation de fichiers parquet sur une carte. Dans les futures mises à jour, Esri prévoit de développer plus de capacités comme la requête sur les entités.

Amélioration des performances

Esri porte une attention particulière à l'amélioration des performances du SDK pour chaque nouvelle version. Voici les domaines concernés pour la 4.33 : 

Couches d'entités

Le chargement des entités de type polygone, ligne ou multipoint a été significativement accéléré dans les cartes 2D. Lorsque certaines conditions sont remplies (notamment l’absence de filtres dynamiques ou de mises à jour fréquentes), les couches hébergées sur ArcGIS Online peuvent désormais récupérer toutes les entités dès le chargement initial de la carte. Une fois les entités en mémoire, les opérations de zoom ou de déplacement s’effectuent sans avoir à redemander les données au serveur, ce qui réduit considérablement les délais d’affichage et améliore la fluidité d’interaction. 

Dictionnaire des rendus

Des gains importants de performance ont été obtenus en optimisant la manière dont les symboles sont générés et mis en cache. Plutôt que de créer un symbole unique pour chaque entité, le moteur de rendu réutilise intelligemment les symboles lorsque cela est possible. Des calculs préliminaires sont également effectués en amont, ce qui réduit le coût de traitement lors du rendu à l’écran. 

Scènes 3D

Dans les scènes web, des économies mémoire importantes sont obtenues grâce à la compression automatique des images raster et des textures associées à certains modèles glTF. Cette compression est réalisée côté client, directement dans le navigateur, de manière asynchrone et en parallèle via des web workers. Le processus ne ralentit donc pas les performances d’affichage. Cette optimisation vient compléter d’autres améliorations déjà en place dans le moteur 3D pour assurer un rendu plus efficace. Selon les cas d’usage, les économies globales peuvent atteindre entre 10 et 50 % de mémoire dans les scènes 3D classiques.

Nouveaux schémas de programmation


Les composants web au cœur du SDK 

Le SDK poursuit sa transition vers les Web Components. Les widgets historiques sont progressivement remplacés par des composants encapsulés avec Shadow DOM. Une fois un composant stabilisé, son widget équivalent est déprécié, comme annoncé depuis la version 4.32. Les composants concernés dans cette version 4.33 sont : Area Measurement 3D, Direct Line Measurement 3D, Line Of Sight, Print, Search, Slice, Time Zone, Label, Weather

Composants réactifs

Avec reactiveUtils, vous pouvez observer les changements d’état des composants (.watch(), .on(), .once(), .when(), .whenOnce()), comme vous le feriez avec une vue view.zoom avec ou une couche avec layer.loaded. Découvrez cela plus en détail dans ce guide.

Méthode viewOnReady()

La nouvelle méthode viewOnReady() sur les composants Map, Scene et Link Chart vous permet d’attendre l’initialisation complète de la vue, parfait pour charger dynamiquement des modules ou exécuter une logique dépendante du rendu. Cette méthode se comporte de manière similaire à une observation de l'événement arcgisViewOnReady(), mais est plus adapté pour des applications JS Vanilla. Pour savoir quelle méthode correspond le mieux à votre architecture, consultez ce guide.
<arcgis-map item-id="332e5d145bec4c2c860d65f7ca494b23"></arcgis-map> 
  <script type="module">
  const viewElement = document.querySelector("arcgis-map");
  // Attente que la MapView interne soit prête
  await viewElement.viewOnReady();
  console.log("MapView is ready:", viewElement.view);
</script>

Import moderne avec $arcgis.import() 

Remplacez require() par $arcgis.import() pour charger vos modules depuis le CDN de manière plus moderne et lisible. Tous les tutos et guides ont été mis à jour dans cette optique. Assurez vous d'inclure type=module dans la balise <script> : cela permet d'utiliser await au niveau supérieur et d'utiliser la syntaxe moderne des modules JavaScript dans le navigateur.
<script type="module">
  // Import des modules Map et Feature Layer 
  const [Map, FeatureLayer] = await $arcgis.import([
    "@arcgis/core/Map.js",
    "@arcgis/core/layers/FeatureLayer.js"
  ]);  
</script>

Transition du Geometry Engine aux Geometry Operators

Le moteur géométrique (geometryEngine) est désormais déprécié. Il est remplacé par les geometry operators, plus modulaires et adaptés aux nouveaux usages du SDK. N’hésitez pas à consulter le guide dédié pour vous mettre à jour.

Pour en savoir plus

Cet article ne résume que les nouveautés principales, mais n'hésitez pas à consulter les notes de version pour obtenir plus de détails, ainsi que la liste complète des nouveautés et de breaking changes. Vous pouvez également explorer tous les exemples de code illustrant les capacités introduites dans cette version.

Aucun commentaire:

Enregistrer un commentaire