Améliorations des performances de la couche d'entités
À chaque version, les développeurs de l'API JavaScript ArcGIS recherchent
des moyens d'optimiser davantage les performances. Cette version apporte
des améliorations de performances critiques pour les couches d'entités. Comme pour presque toutes les améliorations de performances, l'impact
et l'amélioration visuelle des applications varient en fonction des
caractéristiques de l'application, des données qu'elle charge et des
propriétés des services eux-mêmes. Les applications qui verront les gains
les plus notables avec cette version sont:
-
les applications utilisant un grand nombre d'attributs
-
les applications avec un grand nombre d'entités (nécessitant plusieurs
requêtes serveur de tuiles d'entités)
-
les couches d'entités qui utilisent des symbologies de remplissage
Ci-dessous un exemple de la différence des temps d'affichage entre une
application réalisée avec la version 4.16 de l'API à gauche, et une
autre avec la version 4.17 à droite:
|
Plus d'un million d'emprises de bâtiments chargées dans une carte
avec l'API 4.16 et 4.17. A
noter la vitesse mais aussi l'aspect progressif du
chargement.
|
Temps de chargement plus rapide des applications avec de gros volumes
de données:
Esri a révisé le pipeline de
traitement des entités, ce qui améliore considérablement le temps de
chargement des applications devant charger de grandes quantités de
données. Bien que les améliorations de performances varient
considérablement d'une carte à l'autre, vous constaterez que les cartes
qui utilisent de nombreux attributs en bénéficient le plus.
Chargement progressif des tuiles d'entités:
Esri a également amélioré
l'expérience lors du chargement de jeux de données contenant de nombreuses
entités. Comme vous le savez peut-être déjà, les entités sont demandées
selon des tuiles conçues pour une mise en cache haute performance. L'API
dessine les entités de manière incrémentale au fur et à mesure de leur
chargement, ce qui entraîne une progression visuelle de la tuile au cours
de son chargement. Cela peut être observé dans l'animation ci-dessus qui
compare le chargement de la couche d'entités ci-dessus.
Meilleur traitement des données et gestion de la mémoire:
L'API demande, par défaut, des
données au format PBF. Désormais, l'API conserve les entités encodées en
PBF dans leur format binaire natif, en utilisant des lecteurs binaires
pour travailler directement sur les données compressées des entités. Cela
permet au traitement des données de mieux évoluer et de réduire la
pression mémoire, car nous n'avons plus besoin de désérialiser les
fonctionnalités individuelles.
Couches de flux plus stables et plus souples
Pour adresser la demande de plus en plus importante des développeurs de
pouvoir créer des applications visualisant et analysant des flux de
données en temps-réel avec une volumétrie et une vélocité (fréquence
d'actualisation) croissante, Esri a réorganisé la classe StreamLayer pour répondre à ces deux points:
-
Prise en charge d'un plus grand nombre de messages par seconde:
Désormais, l'API permet de traiter des flux de plusieurs centaines de
milliers en appliquant une nouvelle logique d'affichage des données
adaptée aux capacités mémoire et CPU/GPU du client pour évité tout
problème de saturation.
-
Implémentation de WebSockets personnalisés: Au delà de l'implémentation
des couches de flux (StreamLayer) issues de GeoEvent Server ou d'ArcGIS Velocity
(nouveau nom d'ArcGIS Analytics for Iot), l'API a été étendue pour
permettre l'usage de WebSockets personnalisés pour vous connecter à n'importe quelle source de
flux.
Vos couches d'entités gérées côté client sont plus rapides
Les couches d'entités de type CSVLayer, FeatureLayer et GeoJSONLayer créés à partir de graphiques (et donc gérées côté client) tirent
désormais parti d'un worker pour stocker les données. Cela signifie que vous pouvez effectuer
plus de requêtes sur ces couches côté client dans un processus
d'arrière-plan sans interférer avec l'interface utilisateur.
Pour les ensembles de données plus volumineux, vous remarquerez
peut-être également que ces couches affichent la même expérience de
chargement progressif (améliorée) décrite précédemment pour les FeatureLayers. Plutôt que d'attendre qu'une tuile entière soit chargée et analysée,
les entités sont affichées dès qu'elles sont prêtes à être
affichées.
|
Les couches côté client comme cette couche CSV tirent désormais
parti d'un worker pour
stocker les données, ce qui permet une expérience plus
fluide.
|
Couches de tuiles vectorielles: meilleure navigation et affichage
Les couches de tuiles vectorielles proposent dorénavant une
expérience améliorée lors du chargement et de l'interaction avec la
carte. Au fur et à mesure que vous effectuez des zooms avant ou
arrière et que vous naviguez sur la carte, les symboles s'affichent et
disparaissent, offrant une transition plus "douce" entre les
changements d'échelle. Plusieurs optimisations des algorithmes pour la
gestion des conflits entre les étiquettes le long des limites des
tuiles et pendant la rotation de la carte ont résolu certains
problèmes rencontrés dans les versions précédentes avec des étiquettes
superposées ou coupées qui traversaient les limites des tuiles.
L'image ci-dessous illustre les résultats de l'algorithme de
déconfliction d'étiquette entre la version 4.16 et 4.17.
Capacités 3D
Nouveaux motifs de remplissage de polygones:
Vous pouvez désormais utiliser de nouveaux motifs de remplissage pour
vos couches de polygones pour mettre en évidence, par exemple, des
zones réglementaires ou des zones spécifiques sur des couches de
photomaillage 3D. Vous pouvez appliquer le même modèle à tous les
polygones de la scène ou les classer en fonction d'attributs.
Dans l'exemple ci-dessous, les motifs de remplissage de polygones sont
utilisés pour visualiser les zones de développement urbain.
Performances sur les couches de scène:
Les couches de scène (SceneLayer) se chargent et s'affichent désormais jusqu'à deux fois plus
rapidement en utilisant des couches publiées avec des SLPK en
version 1.7 de la spécification I3S. Ceci est particulier notable
pour les couches de scène de points ce qui vous permettra le rendu
en 3D efficace d'une plus grande quantité de symboles ponctuels.
Semblable aux couches de photomaillages 3D (IntegratedMeshLayer) et aux couches de scène d'objets 3D (SceneLayer), vous pouvez mettre à jour vos SLPK existants à l'aide de l'outil de conversion I3S pour bénéficier de ces améliorations de
performances.
Capacités cartographiques
Outre les contraintes de rotation, d'échelle et de zoom déjà prises en charge sur la
carte, vous pouvez désormais contraindre la navigation à un polygone ou à
une étendue. Ceci est pratique pour forcer la concentration de
l'utilisateur sur les emplacements pertinents et minimiser les
distractions provenant d'autres zones périphériques de la carte. Ainsi,
par exemple, vous pouvez limiter la vue à la limite d'une zone d'intérêt,
d'une ville ou même d'un pays.
Pour une expérience utilisateur plus agréable, Esri a également ajouté
des effets d'animation de fondu d'entrée et de sortie à la classe LayerView pour gérer l'affichage/désaffichage d'une couche dans une carte
2D.
Prise en charge de la dimension temporelle pour les cocuhes WMS
La classe WMSLayer prend désormais en charge les couches dont la dimension
temporelle a été activée. Vous pouvez utiliser le widget TimeSlider pour animer vos couches sur une période de temps, ou vous
pouvez définir un timeExtent sur la couche pour ne demander que les données qui sont dans
l'intervalle de temps donné. La propriété timeInfo est définie lors de l'initialisation de l'objet WMSLayer si la couche a une ou plusieurs dimensions temporelles.
Capacités sur les couches raster
À l'aide de la nouvelle classe VectorFieldRenderer, vous pouvez symboliser les données raster à l'aide de symboles
vectoriels. Ceci est souvent utilisé pour visualiser la direction et
l'amplitude de flux dans les données matricielles de météorologie et
d'océanographie. La direction du raster définit les angles, tandis
que la magnitude du raster définit la taille du symbole.
Nouvelles couches WCS
Une nouvelle classe WCSLayer (en béta) vous permet dorénavant d'afficher des données
raster à partir d'un d'un service de type "Web Coverage Service OGC". Les données raster sont projetées et rendues côté client. Il prend
en charge les versions 1.0.0, 1.1.0, 1.1.1, 1.1.2 et 2.0.1. Pour la
version 2.0.1, il prend en charge les serveurs prenant en charge la
couverture GEOTIFF et implémente les extensions suivantes: Scaling,
Interpolation, Range Subsetting, CRS et KVP / Get.
Pour éviter les problèmes de cross-origin lors de l'utilisation de
WCSLayer, vous pouvez configurer un serveur compatible CORS ou un
proxy. Les WCSLayers basés sur le service d'imagerie ArcGIS Server
(10.3.1+) ont CORS activé par défaut.
Mises à jour de widgets
Plusieurs mises à jour ont été apportées aux widgets
suivants:
-
Print:
ce widget
expose désormais de nouvelles propriétés et événements pour
les développeurs souhaitant personnaliser l'expérience
d'impression. Par exemple, les événements complete et submit peuvent être utilisés par les développeurs pour gérer
les résultats et le comportement d'impression.
-
Bookmark:
ce widget
a été amélioré avec la possibilité d'ajouter ou de modifier
une miniature. De plus, auparavant, seule l'étendue du
géosignet était stockée. Les utilisateurs peuvent désormais
créer des géosignets qui capturent également l'échelle et la
rotation actuelles.
-
FeatureTable:
ce widget
a amélioré l'accessibilité et propose une nouvelle prise en
charge de la modification des champs de type "date".
-
FeatureForm:
ce widget
a désormais la capacité de limiter les plages min/max pour
l'entrée de date ainsi que d'inclure ou non une entrée pour
l'heure. Ceci est réalisé en configurant la nouvelle
interface utilisateur DateTimePickerInput .
-
TableList : le nouveau widget TableList fournit un moyen d'afficher une liste de tables dans
une carte.
Modules ES - Evolution des développements
Esri a largement progressé dans la fourniture de l'API JavaScript
ArcGIS sous forme de modules ES (la norme ECMAScript pour
travailler avec des modules), ce qui permettra aux développeurs
d'intégrer plus facilement l'API avec des frameworks et des outils
de développement modernes. Ce projet est actuellement en
développement et n'est pas destiné à être utilisé dans des
applications de production. Esri prévoit de publier les modules en
version beta pour la version prochaine (4.18) avec une version
finale (utilisable en production) prévue pour début 2021.
La consommation de l'API avec les modules ES @arcgis/core sera une option supplémentaire aux côtés des modules AMD
existants. Si vous le souhaitez, vous pouvez déjà essayer ces
modules pendant leur phase de développement et partager ainsi vos
retours avec l'équipe de l'API JavaScript d'Esri à partir de
ce projet GitHub.
Fin du support des navigateurs IE 11 et Edge Legacy
La prise en charge d'Internet Explorer 11 et Edge Legacy pour
une utilisation avec ArcGIS API for JavaScript est devenue obsolète à partir de la version 4.16.
La version 4.17 est la dernière version prenant en charge
Internet Explorer 11 et les navigateurs Edge Legacy. Cela signifie que les applications créées avec 4.18 et
au-delà ne fonctionneront pas dans IE11 / Edge Legacy. Les utilisateurs de vos
applications JavaScript ArcGIS 4.x sont donc fortement
encouragés à passer à un navigateur moderne tel que Mozilla
Firefox, Google Chrome, le nouveau Microsoft Edge ou
Safari.
Consultez ce récent article qui couvre ArcGIS Online, ArcGIS Enterprise et l'API
JavaScript ArcGIS pour en savoir plus.
Et plus encore
Cet article n'est qu'un aperçu des principales évolutions de la
version 4.17. Vous pouvez en savoir plus sur la totalité des
évolutions dans les notes de mise à jour et jouer avec les nouveaux exemples de code relatifs à cette version 4.17 pour avoir une idée
des nouvelles fonctionnalités.
Vous pouvez vous abonner à ce blog pour lire d'autres articles sur le développement Web
d'applications cartographiques et découvrir comment notre API
est une superbe alternative à Google Maps !
Vous voulez
vous aussi réaliser des applications Web cartographiques et
dynamiques ? N'hésitez pas à souscrire à un plan gratuit ArcGIS for Developers pour développer vos propres applications cartographiques
2D ou 3D ! Cet article résume ce que vous obtiendrez. Et pour en savoir sur
l'API c'est ici.
Aucun commentaire:
Enregistrer un commentaire