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.