Rechercher dans le blog

Nouveautés version 4.14 de l'ArcGIS API for JavaScript

La version 4.14 de l'ArcGIS API for JavaScript est sortie

Bonjour, depuis la semaine dernière, la version 4.14 de l'API ArcGIS for JavaScript est disponible. Elles comportent de nombreuses nouveautés qui étaient très attendues et renforcent les capacités de webmapping de l'API pour créer de superbes applications cartographiques. Parmi elles les principales sont : 
- le support du clustering en 2D
- un widget pour régler l'éclairage/ombrage d'une scène 3D à partir de la date et de l'heure
- la possibilité de modifier et enregistrer des cartes Web dans votre portail (ArcGIS Online ou au de votre plateforme ArcGIS Enterprise) directement au sein de votre application
- améliorations de navigation : en appuyant 2 fois sur la carte et en laissant le doigt appuyé vous pouvez aller vers le haut pour zoomer et vers le bas pour dézoomer
- l'API passe aux promesses natives(par défaut en 4.15 et les promesses du Dojo auront complètement disparu en 4.16)
- nouveaux outils d'analyse 3D côté client comme la ligne de vue
- grosses améliorations de performances et corrections de bugs

Clustering en 2D (beta)

Le clustering permet de réduire et de résumer les entités ponctuelles dans plusieurs types de couches disponibles sur le Web comme CSVLayer ou GeoJSONLayer, consultez cet article pour savoir comment les manipuler dans votre application Web; ou dans des couches issues de la plateforme ArcGIS comme les FeatureLayer. Cette méthode de réduction des fonctionnalités regroupe spatialement les points en grappes en fonction d'une zone d'influence que l'on définit nous même, appelée clusterRadius. La taille de chaque cluster est proportionnelle au nombre d'entités au sein du cluster. Et il n'y a pas de limites dans le nombre d'entités que peut contenir un cluster.
On définit donc un ensemble de propriétés qu'on peut stocker dans une variable, puis on affecte celle-ci à la propriété featureReduction de la couche concernée.

Vous pouvez utiliser un seul symbole de cluster à dimensionner en fonction du nombre d'entités au sein du cluster, ou de lui appliquer un rendu exprimant la synthèse des valeurs des entités regroupées au sein du cluster. Dans ce deuxième cas, vous pourrez soit représenter les valeurs moyennes ou prédominantes des entités de chaque cluster ou représenter la valeur la plus courante au sein d'un cluster. Les fenêtres contextuelles peuvent également être configurées pour afficher des informations récapitulatives pour le cluster.
Votre couche clusterisée peut, comme la couche initiale à partir de laquelle vous avez fait le cluster (CSVLayer, FeatureLayer ou GeoJSONLayer), supporter les requêtes cotés client, le smart mapping, calculer des statistiques, filtrer, en bref supporter les opérations classiques comme sur les couches.

Le regroupement de points s'applique uniquement aux couches avec des géométries de point dans un MapView contenant soit un SimpleRenderer, UniqueValueRenderer ou un ClassBreaksRenderer. Elle ne s'applique pas aux couches avec des géométries de polyligne et de polygone.

Bien que cela puisse être considéré comme une technique de visualisation, le clustering est en fait une méthode de réduction des fonctionnalités dans la vue. Il est donc indépendant du Renderer. Le style et la popup de chaque cluster résument les fonctionnalités qu'il représente. Lorsque vous effectuez un filtrage côté client sur les entités d'une couche, les clusters sont automatiquement recalculés côté client. Les clusters affichent uniquement des informations conformes au filtre, notamment le nombre d'entités et la catégorie prédominante (voir cet exemple).

Enregistrer des cartes Web

La carte Web est le medium incontournable de la plateforme ArcGIS. Cela peut permettre aux utilisateurs de votre application de modifier leur carte (étendue, couches, visibilités, rendus, ...) et de pouvoir l'enregistrer dans leurs contenus. L'enregistrement de cartes Web est désormais possible avec quelques lignes de code. Il faut créer une nouvelle instance WebMap et une instance Portal où la WebMap doit être enregistrée. Le chargement du portail déclenchera l'authentification de l'utilisateur et, en cas de succès, l'élément sera enregistré sur le portail donné.
Vous pourrez ainsi permettre aux utilisateurs de votre application de mettre à jour une carte Web existante ou d'en créer une nouvelle et l'enregistrer sur leur portail ArcGIS Online (ou ArcGIS Enterprise). Il s'agit d'une fonctionnalité très simple mais puissante qui vous permettra de créer des applications encore plus étroitement intégrées à l'écosystème géospatiale de votre organisation.

map.saveAs({
 title: Carte Web,
 portal : portal
});

Voici un sample qui décrit comment faire.

Widget "Line of Sight"

Un nouveau widget Line of Sight permet désormais aux utilisateurs de votre application d'analyser interactivement des lignes visibilité dans les scènes 3D. En plaçant deux points (ou plus) sur des bâtiments, sur le sol ou d'autres objets de la scène, ils pourront évaluer la visibilité directe entre les différents points de chaque ligne de visibilité. Par exemple, vous souhaiterez peut-être évaluer l'impact d'une construction planifiée par rapport aux bâtiments environnants. Les résultats de l'analyse se mettent à jour de manière interactive lorsque vous déplacez l'observateur ou les cibles dans votre scène. En plus de permettre à l'utilisateur final d'effectuer l'analyse de manière interactive, vous pouvez définir dans votre code JavaScript l'observateur et les cibles pour l'analyse (voir cet exemple).

Widget d'éclairage et d'ombrage

Un nouveau widget Daylight vous permettra de définir les paramètres de date et heure pour simules les conditions d'ombre et d'éclairage ambiant. L'utilisateur pourra modifier l'heure et la date pour voir les ombres projetées par les objets 3D dans votre scène. Le widget vous permet également d'animer la lumière du soleil tout au long de la journée, et inclut même des étoiles dans le ciel à leur emplacement correct. Ce widget est alimenté en utilisant des informations d'éclairage précises pour n'importe quelle condition: année, jour, heure et lieu sur terre (voir cet exemple).

Étiquettes pour les couches de scènes d'objets 3D

Les SceneLayers contenant des objets 3D tels que des bâtiments, des équipements urbains, ... prennent désormais en charge les étiquettes. Ainsi, vous pourrez disposer des mêmes capacités d'étiquetage que les couches d'entités. Votre code JavaScript pour l'étiquetage des objets 3D sera d'autant plus simplifié que vous pourrez générer des étiquettes directement à partir des attributs du cache de votre SceneLayer au lieu d'utiliser la couche d'entités associée.

Comparer facilement des jeux de données décalés dans le temps

Des améliorations ont été apportées aux capacités de l'API pour la visualisation de données temporelles. Il est dorénavant possible de définir un "décalage" temporel sur une couche d'entités pour pouvoir la ramener à la même plage temporelle que d'autres couches afin de pouvoir les comparer. Par exemple, vous souhaitez comparer les accidents sur l'année 2009 et l'année 2019 mois par mois. Il suffira de définir un décalage de 10 ans sur la couche d'entités de 2009 pour déplacer virtuellement les données sur 2019 et pouvoir ainsi les comparer. Ensuite, en utilisant le widget TimeSlider, l'utilisateur pourra ajuster interactivement l'étendue temporelle pour comparer les données des deux années, de mois en mois ou tout autre pas de temps souhaité (voir cet exemple).

Mise à jour des pièces jointes et nouvelles options

La prise en charge des opérations de mise à jour a été introduite dans l'API 4.x de manière itérative sur plusieurs versions. Avec la version 4.14, vous pouvez désormais ajouter, mettre à jour et supprimer des pièces jointes grâce à la méthode FeatureLayer.applyEdits(). Dans le futur, cette capacité sera également disponible via les widgets de mise à jour de l'API. Plus d'options ont également été ajoutées sur la méthode applyEdits afin de contrôler la façon dont les modifications doivent être traitées selon les workflows de mise à jour. Par exemple, pour spécifier la version de la géodatabase cible des modifications (pour les bases de données versionnées) et encore pour les modifications qui doivent être appliquées uniquement si toutes les modifications soumises sont valides.

Guide sur les meilleures pratiques de sélection des couleurs

Plusieurs centaines de dégradés de couleurs sont proposés dans l'API pour le rendu des couches (Smart Mapping). Ils peuvent désormais être facilement visualisées, filtrées et copiées dans vos applications à partir de cette page de la documentation.


Améliorations des performances

L'API est améliorée en permanence pour augmenter les performances. Parmi ces améliorations on notera les points suivants:

- Amélioration significative des performances de la GPU en réduisant le nombre de sommets des polygones dessinés, tout en conservant la même qualité visuelle de la forme du polygone.
- Lors du rendu des tuiles vectorielles, le nombre d'appels WebGL a été réduit de 20 à 25% et beaucoup moins d'appels JavaScript sont effectués. Ceci se traduit par une expérience et une interaction plus fluide.
- Le rendu a été optimisé pour les 3D Textured Mesh.
- Le rendu des objets "Graphic" est également plus rapide lorsqu'ils sont ajoutés à la collection "Graphics" ou "GraphicsLayer", ou lorsqu'elles sont ajoutées aux collections d'entités via l'instruction FeatureLayer.source, car l'API ne simplifie plus les géométries. Il est de la responsabilité du développeur de vérifier l'exactitude des géométries de polygone avant qu'elles ne soient ajoutées à ces couches.

    Modernisation de l'API

    A chaque version, l'API se modernise et se simplifie. Les navigateurs modernes offrant un nombre croissant de fonctionnalités, ils peuvent en faire plus avec moins de code JavaScript ce qui est également vrai pour l'API qui devient donc plus puissante et plus légère. En 4.14, l'équipe de l'API se s'est concentrée sur les points suivants:

    - Les promesses jouent un rôle important dans l'API car elles permettent d'écrire un code plus propre lorsque vous travaillez avec des opérations asynchrones. Auparavant, elles étaient mises en œuvre à l'aide des promesses de Dojo. Dans la version 4.12, Esri a introduit l'option d'activation des promesses natives JavaScript. Il est prévu de faire en sorte que l'API exploite les promesses natives de JavaScript par défaut en 4.15, puis de supprimer complètement les promesses Dojo en 4.16. Plus de détails sur cette fonctionnalité seront disponibles prochainement dans un article sur le blog ArcGIS.

    - Esri travaille sur la suppression de la dépendance au module de déclaration de Dojo (et sur la suppression éventuelle de la dépendance de l'API à Dojo). Ce travail implique la migration de l'implémentation de certaines classes de l'API pour tirer parti du système de classes JavaScript pur (et TypeScript) et ne plus reposer sur l'utilisation de "Dojo declare". La première étape de cette migration consiste à adopter les Mixins avec TypeScript et JavaScript par opposition à l'héritage multiple. Bien que l'héritage multiple soit toujours pris en charge dans les applications construites avec l'API, il est obsolète depuis la version 4.13 et vous demandera éventuellement de modifier votre code (si vous utilisez ce modèle). Un message d'avertissement s'affiche dans la console du navigateur pour vous rappeler ce changement.

    Pour en savoir plus ...


    Il y a bien d'autres évolutions dans cette version, par exemple une option pour désactiver le zoom avec la molette de la souris et le panoramique avec un seul doigt (utile pour les appareils tactiles), des mises à jour dans les capacités de Smart Mapping, y compris la possibilité de contrôler la taille des symboles en fonction de l'échelle de la carte, et plus de 50 corrections de bugs. Pour en savoir plus sur cette version 4.14, explorez les:
    Notes de version
    Nouveaux exemple de code


    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