Le blog francophone consacré
aux technologies Esri

L'API JavaScript ArcGIS passe en version 4.12



Parmi les nombreux projets de développement d'Esri arrivant à leur terme juste avant la UC, c'est au tour de l'API JavaScript d'être mise à jour en version 4.12. Cette nouvelle version améliore tout d'abord les capacités fonctionnelles de la version précédente (ajout du widget Time Slider pour les rendus temporels, nouvelles options de rendu réaliste pour représenter en 3D les zones hydrographiques, requêtes coté client dans les scènes 3D, nouveaux widget "Slider" pour interagir avec vos données dans vos interfaces, ...). La version 4.12 se caractérise également une augmentation significative des performances dans différents parties de l'API qui vont clairement se ressentir dans l'expérience utilisateur. Cet article présente certaines des améliorations apportées dans cette version 4,12. 
 
 
Amélioration des performances

Les optimisations apportées dans la version 4.12 permettent un chargement plus rapide de vos cartes web. Parmi ces améliorations on notera:
 
  • Les couches de tuiles vectorielles se chargent désormais 50% plus rapidement grâce à l'amélioration de la récupération des tuiles vectorielles utilisant plus de parallélisation des requêtes et des optimisations sur le traitement des tuiles.
  • Le rendu des couches d'entités a été améliorée grâce à des optimisations liées à la triangulation des géométries. Ce traitement par triangulation ne réduit en rien la qualité d'affichage de ces géométrie.
  • Les performances du traitement des lignes ont été considérablement améliorées en réduisant au minimum les appels aux fonctions exécutés lors du traitement des données linéaires. Dans le cas des lignes fines, une technique de traitement simplifiée qui permet de créer beaucoup moins de sommets sans créer d'artefacts visuels.
  • Lorsque vous modifiez les données d'un  attribut utilisé pour le rendu, la carte est mise à jour plus rapidement et sans scintillement.
  • Les couches de scène d'objets 3D et de Mesh 3D sont désormais chargés 4 fois plus rapidement dès lors qu'elle utilise la nouvelle version 1.7 de la spécification i3s . En outre, un nouveau mécanisme de mise en cache côté client permet de réduire les zones sans données lors de l'exploration d'une scène 3D.
  
Les travaux de R&D sur ces aspects de performance continueront d'être intégrés dans les versions à venir, tant dans le domaine du temps de chargement initial de la carte que dans celui du rendu.
  
   
Contrôler la dimension temporelle de vos avec le widget TimeSlider

Vous pouvez maintenant créer des applications qui visualisent et filtrent des données temporelles à l'aide du nouveau widget TimeSlider .

    
En 4.11, Esri avait introduit la dimension temporelle pour les requêtes (côté client et côté serveur). Ces mêmes requêtes temporelles pouvaient être utilisées dans les filtres et les effets sur l'objet FeatureLayerView. Les filtres constituent un moyen efficace d'afficher un sous-ensemble de graphiques côté client, tandis que les effets permettent d'appliquer des effets visuels aux entités incluses et exclues. Par exemple, les séismes dans une étendue définie par l'utilisateur peuvent être colorés en orange vif, alors que les séismes situés en dehors de cette étendue apparaissent sous la forme de points gris semi-transparents. Etant donné que le filtrage et les effets (temporels ou non) sont effectués côté client, ils sont extrêmement rapides, même pour les grands ensembles de données.

En version 4.12, Esri a ajouté le support temporel directement aux objets MapView ou SceneViews . Toute couche temporelle de la carte/scène respecte automatiquement la date/heure définie pour cette dernière en affichant uniquement le contenu correspondant à cette date ou à cette période. Pour manipuler facilement la date/heure d'affichage, l'API propose désormais le widget TimeSlider. Ce widget, très facile à utiliser et à configurer, mettra à jour la date/heure de la carte/scène chaque fois qu'il y aura une interaction de la part de l'utilisateur.

Les développeurs peuvent éventuellement utiliser le widget TimeSlider en tant que source pour l'objet TimeExtents à appliquer directement aux effets et aux filtres sur l'objet FeatureLayerView.


Symboles vectoriels 2D 

Plus de 100 nouveaux symboles vectoriels prêts à l'emploi (appelés WebStyleSymbols et publiés en version beta) ont été ajoutés. Ils peuvent être stylés de manière dynamique comme vous le souhaitez dans les MapViews 2D. Vous pouvez utiliser ces symboles dans des calques pour indiquer simplement l'emplacement ou dans des visualisations basées sur des données à l'aide de variables visuelles de taille, de couleur et d'opacité. Les marqueurs vectoriels fournissent un affichage agréable et net; Même si la taille du symbole augmente, la qualité ne se dégrade pas.



Rendu des zones hydrographiques

L'aPI vous propose dorénavant de créer des visualisations animées sur des zones hydrographiques, telles que des effets d'ondulations de l'eau et des reflets liés à l'éclairage de la scène 3D. La prise en charge de ces effets créera une sensation plus réaliste dans vos scène. La nouvelle classe d'objet WaterSymbol3DLayer propose des options amusantes, telles que waveStrength, qui détermine la magnitude des ondes, et  waveDirection, qui indique la direction dans laquelle les ondes se propagent. Vous pourrez modéliser ainsi un lac, une rivière, la mer, ... en modulant également la couleur et la transparence.

    
 
Nouveaux symboles de lignes 3D

Le nouveau profil "quad" vous permet de visualiser des lignes 3D en générant un rendu de type "quadrilatère 3D":  carrés, bandes et murs. Comme pour les autres symboles, ce nouveau profil prend également en charge la taille ou la couleur définie par l'attribut à l'aide de l'objet VisualVariables. Vous combinerez ainsi les profils de rendu de vos polylignes avec les nouvelles options de configuration cap, join et profileRotation afin d'améliorer le style de visualisation de vos couches linéaires pour représenter de manière plus impactante des rues, des lignes de transport ou des limites géographiques.


 
Filtres sur les couches de scène de bâtiments

Les objets  BuildingSceneLayer  correspondent à des couches de scènes permettant le rendu des modèles BIM (Autodesk Revit) publiés en 3D sur un portail ArcGIS. Avec cette version, nous avons ajouté la prise en charge du filtrage afin que vous puissiez créer des applications qui isolent les objets 3D par étage, par catégorie, par matériau de construction, par phase de construction, .... 

Couche de scène de bâtiment issue d'un BIM et filtrée sur
le deuxième étage


Requêtes côté client en 3D

Comme dans les MapViews 2D, vous pouvez désormais effectuer des requêtes côté client avec des couches de scène et des couches d'entités dans vos SceneViews 3D. Ainsi vous pourrez construire des applications qui permettent aux utilisateurs de sélectionner de manière interactive des entités et d'afficher des statistiques à l'aide d'expressions spatiales et/ou d'expressions basées sur des attributs.



Capacités de SmartMapping

Avec cette version .12, l'API a atteint la parité avec les capacités de Smart Mapping de l'API 3.x et les dépasse même avec des capacités supplémentaires. Par exemple, vous pouvez choisir de mettre à jour dynamiquement la largeur des contours de vos symboles de polygone en fonction de l'échelle de la carte/scène. Vous pouvez également tirer parti d'une nouvelle méthode déterminant automatiquement les tailles minSize et maxSize suggérées pour une variable visuelle de type "taille dépendant de l'échelle".
 

Nouveaux widgets de curseur

Dans cette nouvelle version, Esri propose aux développeurs d'améliorer facilement l'interface de leur application JavaScript avec de nouveaux widgets de curseur qui vont permettre une expérience utilisateur plus riche autour de l'exploration des données, la définition de symbologie, le friltage d'entités, .... Ces curseurs sont intégrés aux widgets de Smart Mapping, aux nouveaux widgets TimeSlider et Histogram, etc. Vous pouvez cependant les utiliser indépendamment avec la classe Slider pour créer vos widgets personnalisés.



Modernisation de l'API

A mesure que l'API et les navigateurs web évoluent, l'équipe de l'API JavaScript ArcGIS est en mesure de développer l'utilisation par celle-ci de capacités natives de ces navigateurs web à la place de bibliothèques Esri ou tiers. Cela permet de réduire la taille de l'API et améliore, entre autres, les performances sur les temps de chargement de vos applications web. En termes d'efforts de modernisation, on retiendra les points suivants:

  • 93% du code est écrite en TypeScript.
  • esri/request utilise désormais l'API Fetch native en interne pour demander des ressources.
  • La plupart des méthodes asynchrones de l'API JavaScript ArcGIS prennent désormais en charge un paramètre de signal facultatif de type AbortSignal. Voir cette rubrique Annulation de méthode asynchrone pour plus d'informations.
  • Un nouveau flag est disponible pour indiquer aux fonctions d'API asynchrones de renvoyer une promesse JavaScript native plutôt qu'une promesse Dojo (dojo / différé).
  • Un nouveau module de formatage de nombres et de dates, esri/intl, tire parti des API d’internationalisation des navigateurs. Il comprend des fonctions permettant de formater les dates, les heures et les chiffres en fonction de paramètres régionaux, ainsi que les formats horaires 24 heures ou 12 heures.


Pour aller plus loin...

Pour accéder à l'ensemble des évolutions, vous pouvez vous reporter à la page suivante de la documentation. Comme pour chaque nouvelle version de l'API JavaScript, de nouveaux exemples de code ont également été ajouté dans la documentation. Je vous recommande vivement de les consulter.

  
Pour résumer, si vous disposez de 3 minutes pour détendre un peu, voici ci-dessous cette vidéo tout en image et en musique sur les nouveautés de cette version 4.12.


  
  
Quelques mots sur la version 3.29

Esri a également mis à jour l'API 3.x avec une version 3.29 qui propose quelques évolutions mineures et des corrections de bugs. En savoir plus sur cette version 3.29.
  

Partager cet article:

Rejoindre la discussion

    Les commentaires à propos de cet article: