Le blog francophone consacré
aux technologies Esri

La version 4.16 de l'API JavaScript ArcGIS est disponible

Avec un peu de retard, je reviens aujourd'hui sur la dernière version 4.16 de l'API JavaScript ArcGIS, sortie le 5 juillet (on notera aussi la sortie d'une version 3.33 pour l'ancienne génération de l'API). Il s'agit d'une version importante corrigeant 20 anomalies, ajoutant 65 nouvelles classes et 24 nouveaux exemples. On notera également que 99% du code de base de l'API est dorénavant écrit en TypeScript.

D'un point de vue fonctionnel, cette version 4.16 introduit des nouvelles capacités et des améliorations pour la création d'applications web cartographiques toujours plus riches et puissantes en 2D et en 3D. Cet article présente certaines de ces nouveautés comme l'étiquetage des clusters, la symbologie des entités linéaires et surfaciques l'ajout des effets de reflets des surface en eau dans les scènes 3D et une nouvelle option de rendu pour vos données avec le mélange de couches.

   

Mélange des couches

Cette puissante fonctionnalité vous permet d'appliquer dynamiquement des effets de type Photoshop aux cartes, le tout dans le navigateur. Plutôt que de produire une image statique, vous vous retrouvez avec une carte interactive en direct. Cette puissante capacité vous permet d'appliquer l'un des 30 modes de fusion à vos couches pour créer des effets intéressants, ou même pour produire ce qui semble être un nouveau couche.

Dans l'animation ci-dessus, une couche qui montre les données de particules de 2,5 (PM 2,5) sur la qualité de l'air pour les États-Unis entre 1998 et 2016 sur la base des données maillées de la NASA SEDAC est mélangée en utilisant la multiplication avec une couche d'ombrage qui montre une relation intéressante entre les montagnes, les vallées et les concentration de la pollution atmosphérique.

Dans le monde de la photographie et de la conception graphique, les modes de fusion sont couramment utilisés lors de la restauration ou de la retouche de photos. Dans le monde de la cartographie, ils sont utilisés pour mélanger les couches ensemble pour créer un effet intéressant dans un couche, ou même pour produire ce qui semble être un nouveau couche en mélangeant les couches de la carte. Contrairement à la méthode d'utilisation de la transparence qui peut entraîner un couche délavé, les modes de fusion peuvent créer une variété de résultats intéressant en mélangeant un couche avec le(s) couche(s) en dessous. La fusion est prise en charge avec tous les types de couches et vous pouvez mélanger n'importe quel nombre de couches ensemble.

Pour mélanger des couches dans votre application, vous définissez simplement la propriété blendMode sur le couche:

Une alternative à l'implémentation de la fusion dans votre code consiste à utiliser la version bêta de la visionneuse de carte ArcGIS Online (après la prochaine mise à jour) pour créer une carte Web avec des couches mélangées, puis à charger la carte Web dans votre application. C'est un excellent moyen de jouer avec les couches que vous souhaitez mélanger, la variété des modes disponibles et l'ordre des couches.


Étiquetage de cluster

Le clustering est arrivé dans la version de Décembre, vous pouvez retrouver mon article sur le tutoriel sur le clustering ainsi que celui ci pour visualiser un exemple réalisé par des étudiants de Science U Lyon. Vous pouvez désormais étiqueter les clusters.  Non seulement avec un simple nombre de fonctionnalités que chaque cluster représente, mais avec la flexibilité totale des capacités LabelClass de l'API. Cela signifie que vous pouvez:

  • Créez une ou plusieurs étiquettes dynamiquement basées sur une expression Arcade à l'aide de valeurs d'attribut, comme dans cet exemple.
  • Utilisez les statistiques récapitulatives utilisées par la fenêtre contextuelle du cluster, telles que la moyenne d'un champ numérique et la valeur prédominante d'un champ chaîne.
  • Contrôlez le positionnement des étiquettes.
  • Définissez une condition à laquelle les étiquettes doivent être affichées.
  • Affichez les étiquettes sur plusieurs lignes.

Cet exemple montre des tremblements de terre groupés. Les étiquettes ne s'affichent que lorsqu'il y a plus de 100 entités dans un cluster. Pour implémenter cela, on a défini une clause where: 

where: “cluster_count > 100”

Fonctionnalités de l'API OGC - l'évolution de WFS

Un nouveau type de couche appelé OGCFeatureLayer vous permet de visualiser les données d'un service OGC API Features en 2D et en 3D. La norme OGC API Features est le successeur de la précédente spécification OGC Web Feature Service (WFS). La nouvelle norme est adoptée par plusieurs implémentations de serveur car elle présente de nombreuses améliorations par rapport à WFS; notamment des performances plus rapides et une conception modernisée, cohérente et modulaire. La prise en charge de WFS est toujours à l'étude.


Reflets de l'eau

Esri continue d'améliorer la qualité visuelle des scènes 3D. Plus tôt cette année, l'équipe de l'API avait ajouté le support des rendus basés sur les propriétés physiques des matériaux (PBR) et amélioré l'éclairage global. Avec cette version, Esri introduit les capacités de rendu des reflets sur les surfaces en eau. Avec cet ajout, vous pouvez obtenir un aspect réaliste en affichant les reflets des bâtiments, des montagnes et d'autres objets 3D dans l'eau en définissant view.environment.lighting.waterReflectionEnabled à la valeur true. D'autres propriétés telles que le réglage de la couleur dominante de l'eau, la force et la direction des vagues peuvent s'ajouter à cette visualisation réaliste de l'eau.

    

Modifications de maillage intégrées

Modifiez la forme d'un IntegratedMeshLayer en appliquant des modifications côté client. Une nouvelle classe SceneModifications vous permet de modifier les aspects d'un maillage intégré des manières suivantes:

  • Remplacez des parties du maillage par d'autres données 3D telles que des bâtiments (pratique en urbanisme)
  • Masquez le maillage à la forme souhaitée (supprimez les parties indésirables).
  • Poussez temporairement le maillage dans des scénarios de type "excavation".

La classe SceneModifications peut être conservé à l'aide de WebScene.save(), permettant aux utilisateurs de partager leur maillage intégré modifié via des scènes Web. Voir cet exemple de code pour aller plus loin.

   

Nouveau widget "Building Explorer"

Mieux comprendre les données de construction complètes provenant des modèles d'informations de construction (BIM) à l'aide du nouveau widget Building Explorer. Une interface utilisateur préconfigurée et intuitive vous permet d'isoler des niveaux, des catégories ou des phases de construction spécifiques pour un ou plusieurs bâtiments de votre scène.

Vous connaissez peut-être ce widget déjà disponible la visionneuse de scène. Maintenant qu'il fait partie de l'API, vous pouvez créer une expérience similaire dans votre application ou personnaliser l'interface utilisateur pour vos flux de travail BIM spécifiques. Le widget fournit des options simples pour basculer la visibilité des composants de l'interface utilisateur.

Vous pourrez tester l'utilisation des ce widget "Building Explorer" dans l'exemple de filtrage des BuildingSceneLayer qui a été mis à jour.

Pour mémoire, vous pouvez fournir aux utilisateurs des points de vue spécifiques et prédéfinis sur les détails intérieurs ou souterrains de votre scène. Lors du découpage du terrain et des objets 3D, il est désormais possible d'incliner arbitrairement le plan de coupe et de définir par programme la forme de la tranche à l'aide d'une nouvelle classe SlicePlane.

  

Symboles CIM de vecteur ligne et polygone

La symbologie vectorielle pour les cartes 2D a été introduite à la version 4.12. Cela a donné aux développeurs la possibilité de créer de belles cartes qui affichent une netteté à n'importe quelle échelle (voir la comparaison entre une image à l'échelle et un symbole de vecteur à l'échelle ci-dessous) :


Jusqu'à présent, seuls les symboles ponctuels étaient pris en charge. Avec cette version, vous pouvez désormais afficher des lignes et des polygones dans des cartes 2D. Cette amélioration vous permet de créer des symboles de ligne à plusieurs couches qui vous permettent de représenter des routes revêtues, d'utiliser des motifs de ligne personnalisés ou de placer des marqueurs n'importe où sur votre ligne. Sous le capot, il est alimenté par CIM (via la classe CIMSymbol de l'API), qui est le modèle d'informations cartographiques du système ArcGIS. Les symboles peuvent avoir plusieurs couches qui peuvent être contrôlées séparément et dynamiquement, en utilisant la logique d'expression et les attributs de fonctionnalité.

Un support a également été ajouté pour la lecture et l'écriture des symboles CIM dans les cartes Web.

   
De puissantes capacités côté client pour l'imagerie

Des avancées ont été réalisées dans l'API dans les versions 4.15 et 4.16 pour vous permettre de tirer parti de la puissance du client pour l'imagerie. Dans le passé, la projection et le rendu des images étaient effectués sur le serveur et livrés au client sous forme d'images JPEG/PNG pour affichage. La nouvelle classe ImageryTileLayer vous permet d'effectuer un rendu côté client des données raster et des capacités dynamiques telles que:

  • Projection côté client des données raster fournies sous forme de tuiles.
  • Visualisez le terrain sur une carte 2D et appliquez même un relief ombré à l'aide du nouveau RasterShadedReliefRenderer (disponible pour les couches d'images en mosaïque et dynamiques).
  • Récupérez des données brutes de pixels dans une mesure: l'accès aux pixels fournit une passerelle pour aller au-delà de la visualisation d'images, telles que les graphiques interactifs, les statistiques locales.
  • Modifiez dynamiquement le rendu (valeur unique, étirement, interruptions de classe) pour les couches de tuiles d'imagerie sur le client.
  • Prise en charge des couches de tuiles d'imagerie dans les cartes 2D et les scènes 3D.

Voir l'exemple de code ici.

   

Mise à jour de données via la table attributaire (beta)

En 4.16, Esri a ajouté la prise en charge de la modification au widget FeatureTable. Si la modification du service d'entités pour laquelle la table affiche des données est activée et que la propriété editingEnabled de la table d'entités est définie sur true, les utilisateurs finaux pourront modifier leurs données d'attribut en double-cliquant sur une cellule.

  

Fenêtres contextuelles (Popups): ajouter du contenu personnalisé

Maintenant, en plus des champs, des éléments multimédias, du texte et des pièces jointes, vous pouvez incorporer à peu près n'importe quoi dans un élément contextuel appelé CustomContent. Ce type d'élément de contenu peut fonctionner avec du contenu tel que des chaînes, des éléments HTML, des widgets et/ou des éléments issus de votre code réagissant à une promesse.

Comment ça marche? Un objet PopupTemplate formate et définit le contenu d'une popup pour un calque ou un graphique spécifique. Vous pouvez spécifier n'importe quelle combinaison d'éléments contextuels que vous souhaitez afficher dans la section de contenu de la fenêtre contextuelle lorsque l'utilisateur clique sur une fonctionnalité telle que des informations d'attribut formatées, un graphique et votre contenu personnalisé comme un bouton ou un widget API.

Vous pouvez consulter cet exemple de code qui met en oeuvre ce nouveau widget.

  

Modernisation de l'API

  • L'API n'a plus de dépendances sur Dojo.
  • Esri a développé une nouvelle solution pour localiser les widgets de l'API pour remplacer dojo / i18n.
  • L'API renvoie des promesses natives.
  • Les classes utilisent désormais la syntaxe de classe native au lieu de dojo /_base /declare. 

Vous pouvez consulter les release notes pour plus de détails sur ces évolutions, ou découvrez comment implémenter des classes à l'aide de ce guide.


Fin du support d'IE 11

Internet Explorer 11 est désormais obsolète dans la version 4.16 de l'API JavaScript. Il est également obsolète dans d'autres parties de la plate-forme ArcGIS; par exemple, ArcGIS Online et ArcGIS Enterprise ont annoncé la dépréciation d'IE11 et d'Edge Legacy ainsi qu'une date de fin de prise en charge dans ArcGIS Online d'ici la fin de 2020. Les utilisateurs sont fortement encouragés à passer à un navigateur moderne tel que Mozilla Firefox, Google Chrome, Apple Safari ou Microsoft Edge. Bien qu'Internet Explorer 11 continue d'être pris en charge, l'utilisation d'Internet Explorer 11 est déconseillée et la prise en charge sera interrompue lors d'une prochaine version. Un avis supplémentaire sera fourni avant la suppression du support.


Et plus encore ...

  • Il est désormais possible d'avoir des flèches, des diamants, des croix et d'autres marqueurs au début et / ou à la fin de SimpleLineSymbols dans une MapView 2D.

    En découvrir plus sur cette nouvelle capacité à l'aide de cet exemple de code.

  • Lors de l'enregistrement de cartes web, vous pouvez désormais enregistrer davantage de propriétés sur la vue initiale, notamment l'étendue, la rotation et l'échelle.

  • Vous pouvez dorénavant accéder à des informations sur les performances et la consommation de mémoire des couches de votre scène 3D à l'aide d'une propriété pratique appelée performanceInfo. Un nouvel exemple illustre comment vous pouvez utiliser la propriété pour mieux comprendre la quantité et la complexité des données visualisées dans votre scène.

  • Un nouveau widget appelé TableList qui est très similaire à LayerList, mais est utilisé pour afficher une liste de tables.  

Je n'ai évoqué ici que les principales nouveautés de cette version 4.16, n'hésitez pas à consulter les release notes pour voir toutes les nouveautés. Si vous souhaitez démarrer avec l'API JavaScript ArcGIS et réaliser des applications web cartographiques, riches et dynamiques, alors n'hésitez pas à souscrire à un plan (gratuit) ArcGIS for Developers. Vous développerez ainsi vos propres applications cartographiques 2D ou 3D très puissantes avec un framework riche, performant et éprouvé par Esri et ses partenaires pour la construction des applications du système ArcGIS et des milliers de développeurs dans le monde.

Partager cet article:

Rejoindre la discussion

    Les commentaires à propos de cet article: