Le blog francophone consacré
aux technologies Esri

La version 4.20 de l'API JavaScript ArcGIS est disponible


Une nouvelle version de l'API JavaScript ArcGIS est désormais disponible et je suis ravis de partager avec vous, développeurs d'applications web de cartographie et de SIG, les améliorations et les innovations qu'elle propose. Cette version 4.20 introduit des fonctionnalités telles que la prise en charge des couches WFS, l'introduction des couches d'analyse et un nouveau widget d'analyse des ombres. Mais cette version 4.20 c'est aussi de nombreuses améliorations plus discrètes mais très efficaces qui vous aideront à créer une expérience exceptionnelle pour vos utilisateurs finaux. Les développeurs travaillant dans la gestion de réseaux seront heureux d'apprendre que l'API progresse de plus en plus dans l'intégration des "Utility Networks" à l'API JavaScript. 


Support des couches WFS

La classe WFSLayer vous permet de visualiser le contenu d'un service d'entités Web OGC (WFS), l'ancêtre de l'API OGC - Features également supporté via la classe l'API JavaScript ArcGIS. Ce nouveau type de couche offre le même niveau de fonctionnalités que les autres couches d'entités de l'API avec ainsi un modèle de programmation cohérent.

La classe WFSLayer prend en charge WFS 2.0.0 avec GeoJSON pour des performances maximales. Il est livré avec un module "utilitaire" pour vous aider à parcourir et découvrir le contenus du service WFS.


D'autres améliorations sur le support des standards OGC incluent la possibilité d'enregistrer une couche de type OGCFeatureLayer dans une carte web et la prise en charge des dimensions temporelles dans les couches WMS.


Widget d'analyse des ombres cumulées

Le widget ShadowAccumulation vous permet d'analyser la durée totale de l'ombre portée des bâtiments ou d'autres objets 3D de votre scène sur n'importe quelle période et date. Les options d'analyse telles que les seuils permettent d'évaluer rapidement si une scène est conforme aux réglementations sur l'impact des ombres en zones urbaines.



Décaler les cotés des lignes et des polygones

Vos utilisateurs pourront pousser et tirer horizontalement les cotés des lignes et des polygones tout en conservant la forme de la géométrie à l'aide des améliorations apportées à l'objet SketchViewModel.



Couches d'analyse (beta)

Les couches d'analyse correspondent à un nouveau concept qui vous permettra d'utiliser des outils de l'API tels que la mesure de longueurs ou superficies par programmation (sans afficher les widgets). Vous pouvez l'implémenter en utilisant des données existantes ou les résultats d'une interaction de l'utilisateur comme entrée de votre analyse. Dans la phase initiale de ce projet, vous pouvez créer des expériences d'analyse personnalisées dans des scènes 3D en fournissant par programme les points de mesure, puis en les affichant à l'aide de DirectLineMeasurementLayer et AreaMeasurementLayer.

Dans les prochaines versions, l'API s'enrichira de la prise en charge de la 2D, davantage d'outils d'analyse et la possibilité de conserver les résultats dans les cartes web et les scènes web.

Exemple montrant comment mesurer des parcelles à l'aide de l'objet "AreaMeasurementLayer".


Table d'entités et couches de scènes

Le widget FeatureTable prend désormais en charge les couches de scènes. Ainsi, vous pouvez afficher et modifier de manière interactive les entités d'une couche de scènes dans une vue tabulaire, comme vous le faisiez jusqu'à maintenant avec des couches d'entités. Le widget requiert une couche de scènes ayant une couche d'entités associée.



Les Utility Networks exploitables dans vos applications web !

Au cours des deux prochaines versions, Esri va travailler sur un projet en plusieurs phases pour ajouter la prise en charge des couches de type "Utility Networks" (Réseaux de Distribution). Dans cette version 4.20, Esri a implémenté la première phase qui consiste à prendre en charge la couche regroupant les couches des sous-types et le traçage sur les réseaux simples. Les phases suivantes seront mises en œuvre au cours des prochaines versions et ajouteront la prise en charge d'un traçage plus complet, d'une gestion de sous-réseau et d'une édition avancée.


L'animation ci-dessus montre les avantages en termes de performances de l'utilisation du nouveau groupe de couches de sous-types par rapport à l'utilisation de couches individuelles. Le chargement initial et le zoom de carte entraînent moins de requêtes et donc des performances plus rapides.


Modules Rest

Les modules Rest de l'API facilitent l'intégration de fonctionnalités pour une conception d'application plus modulaire et réduisent également les dépendances inutiles puisque vous n'importez que ce dont vous avez besoin. Dans cette version, Esri a terminé le portage du module Task et des classes de support associées (maintenant obsolètes) vers les modules de repos.

Les modules Rest de l'API sont simplement des fonctions, vous pouvez donc utiliser leurs méthodes immédiatement. De plus, en raison de la conception plus modulaire, vous pouvez importer une ou plusieurs méthodes d'un module Rest au lieu d'avoir à importer le module entier. Cela accélère le temps de construction et rend le code plus ciblé.


Clés API

Au cours des deux dernières versions, Esri a ajouté la prise en charge d'une clé API globale (4.18) pour utiliser avec les services de géolocalisés d'ArcGIS Platform et une prise en charge des services de calcul d'itinéraire (4.19). La version 4.20 s'ajoute à cela en ajoutant la possibilité de définir des clés API pour des couches individuelles, ce qui vous donne un contrôle plus précis sur la clé utilisée pour une couche particulière.


Des requêtes plus puissantes

Pour tirer parti de la base de données relationnelle sur laquelle s'appuient les couches d'entités hébergées d'ArcGIS Online ou d'ArcGIS Enterprise, Esri introduit des fonctionnalités de requête plus avancées. Avant cette version, vous pouviez regrouper et ordonner les résultats des requêtes. Cependant, lors du regroupement, les résultats étaient limités à une seule valeur agrégée pour chaque groupe. Les nouvelles fonctionnalités de requête vous donnent plus d'accès aux lignes individuelles au sein des groupes. Par exemple, vous pouvez regrouper les parcs nationaux des États-Unis par État dans lequel ils résident, les classer en fonction des visites, puis renvoyer les trois premiers parcs les plus visités de chaque État.



Styles et performances des couches de tuiles vectorielles

Dans cette version 4.20, Esri a ajouté une prise en charge des lignes pointillées et des motifs de lignes et de remplissage basés sur les données pour les couches de tuiles vectorielles. Esri a également amélioré les performances des tuiles vectorielles lors des déplacements dans la carte (pan).


Profilage de la couche d'imagerie

Nous avons ajouté la  méthode getSamples() pour les couches d'imagerie, qui vous permet de profiler votre imagerie dans un espace multidimensionnel, par exemple, lors de la création d'un tracé de rose des vents ou de la cartographie de séries temps/profondeur. La fonction getSamples() renverra les emplacements des points d'échantillonnage, les valeurs de pixels et les résolutions correspondantes des données source pour une géométrie donnée.



Widgets "Editor" et "Sketch", accrochage aux points

L'accrochage est désormais disponible lors du déplacement de géométries de points 2D dans les widgets Editor et Sketch.



Limites de zoom augmentées

Il est maintenant possible d'augmenter le niveau de zoom max sur la carte avec l'ajout du paramètre numLODs sur TileInfo.create().


De nouveaux exemples de codes à découvrir

Alors que de nombreux nouveaux exemples sont ajoutés à chaque version pour démontrer de nouvelles fonctionnalités, nous ajoutons également des exemples qui montrent un aspect différent des fonctionnalités introduites dans les versions précédentes. Par exemple, voici deux des nouveaux exemples que nous avons ajoutés à cette version:

Modules ES utilisant des web workers: Ce nouvel exemple de modules ES montre comment intégrer des web workers personnalisés pour améliorer les performances des applications. L'exemple utilise le module de travailleurs APIs pour simplifier l'utilisation des travailleurs au sein de votre application. Les travailleurs Web vous permettent d'effectuer des tâches coûteuses en calcul, telles que des jointures spatiales, sur un thread d'arrière-plan pour éviter de bloquer ou de ralentir l'interface utilisateur (UI).

Couches d'imagerie tuilée (hébergées): Ce nouvel exemple montre comment modifier dynamiquement le rendu et la projection à la volée d'une couche d'imagerie tuilée.



Autres évolutions

Cette version propose bien d'autres améliorations, telles que :

  • Améliorations sur l'outil de profil d'élévation
  • Mise à jour générale des widgets, notamment l'ajout d'une propriété visible pour tous les widgets ainsi qu'une propriété pour modifier le niveau de titre dans les widgets (utile lors de la création d'une application conforme aux normes d'accessibilité).
  • Mise à jour de la méthode applyEdits() pour prendre en charge, en un seul appel, les modifications sur des entités qui engendrent la mise à jour d'entités dans plusieurs couches ou tables reliées.
Vous pouvez consulter les notes de version pour un aperçu plus complet des évolutions de cette version, ou tester les nouveaux exemples de code.

Remarque: les téléchargements de la version 4.20 de l'API et du SDK seront disponibles le 21 juillet. Dojo ne sera plus inclus dans ces téléchargements d'API car l'API ne l'utilise plus (à partir de la version 4.18).

Partager cet article:

Rejoindre la discussion

    Les commentaires à propos de cet article:

6 comments :

Anonyme a dit…

Bonjour.
Vous avez un exemple de mise à jour de plusieurs couches à la fois via applyEdits ?
Merci.

Gaëtan Lavenu a dit…

Bonjour,

La méthode "applyEdits" s'applique à une FeatureLayer. Je ne suis pas un expert de l'API JavaScript mais je pense qu'il n'est pas possible, dans une seule et même instruction, de mettre à jour les données de plusieurs couche en même temps. Le meilleur exemple de code est celui de la documentation de l'API que vous avez probablement déjà consulté: https://developers.arcgis.com/javascript/latest/sample-code/editing-applyedits/

Anonyme a dit…

Merci de ce retour.
C'est bien ce que je pensais. Cependant, à la fin de votre article, vous dites : "Mise à jour de la méthode applyEdits() pour prendre en charge les modifications sur plusieurs couches ou tables en un seul appel."

Gaëtan Lavenu a dit…

Bonjour,

La phrase de l'article était en effet imprécise. Je viens de vérifier, les évolutions de l'API en 4.20 concerne le cas des mises à jour sur des entités qui sont en relation avec plusieurs couches/tables et qui engendrent dont de multiples modifications sur les entités/enregistrements reliés. Ce qui est effectivement différent de votre workflow où vous souhaitez modifier, en une seule opération, des entités de différentes couches.

Gaëtan Lavenu a dit…

En tout cas merci pour votre retour, j'ai modifié ce paragraphe de l'article pour lever l'ambiguïté.

Anonyme a dit…

Ah mais ça c'est encore mieux :)
J'avais en tête de mettre à jour des entités avec des entités reliées.
Merci de la précision.