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.
N'hésitez également pas à consulter
les autres articles traitant du SDK JavaScript d'ArcGIS sur ce blog
!
Aucun commentaire:
Enregistrer un commentaire