Le blog francophone consacré
aux technologies Esri

Conseils & Astuces ArcGIS Online - N°94

N° 94 - Utiliser des expressions Arcade pour créer des rendus plus évolués

Depuis début 2017, les utilisateurs d'ArcGIS Online dispose d'une language d'expressions nommé "Arcade" qui permet, à différents endroits dans leur carte web, de réaliser à la volée des calculs à partir des attributs de vos couches. Les expressions Arcade évitent la création de nouveaux champs pour stocker le résultat d'un calcul combinant d'autres champs de la couche (ou de la table). Mieux encore, à la différence d'un champ calculé, les expressions Arcade sont évaluées dynamiquement et contiennent donc des valeurs les plus à jour des champs sur lesquelles elles s'appuient.

  

Après ce petit rappel sur Arcade, voyons maintenant un exemple concret d'utilisation sur une couche pour calculer des valeurs à la volée et les cartographier à l'aide des capacités de Smart-Mapping d'ArcGIS Online.

  1. Dans cet exemple, nous disposons d'une couche d'entités (la base de données France2027 d'Esri France) qui nous fournit, par IRIS, les estimations de population par tranches d'âges en 2027. L'objectif est ici de cartographier l'évolution de la population des enfants de 0 à 14 ans.


      
  2. Une fois la carte web affichée, cliquer sur la commande "Modifier le style".
     

       
  3. Dans la liste des attributs, au lieu de choisir un champ existant, sélectionner l'option "Nouvelle expression..." afin de définir votre expression Arcade.


       
  4. L'éditeur d'expression Arcade s'affiche. Dans la partie gauche vous rédigez l'expression, dans la partie droite vous sélectionnerez les variables et les fonctions disponibles. Dans notre exemple, nous calculerons le taux d'évolution de la population de 0-14 ans entre 2015 et 2017.

    ($feature.P27_0014 - $feature.P15_0014) *100 / $feature.P15_0014


       
  5. Le bouton "Tester" vous permettra de valider votre expression en la testant sur une entité (choisie de manière aléatoire) de votre couche.


       
  6. Vous pourrez également modifier le nom de l'expression. Il est recommandé de le faire pour une meilleure expérience utilisateur dans toutes les interfaces où les champs et les expressions Arcade sont présentées à l'utilisateur.



    Cliquer sur le bouton "OK" pour valider votre nouvelle expression Arcade.
      
  7. Il est important de comprendre que cette expression est dynamique. Si des valeurs sont modifiées dans l'un de champs utilisé dans l'expression Arcade, la valeur retournée par cette expression sera automatiquement mise à jour. On notera également que si vous enregistrez la couche, l'expression Arcade sera également enregistrée et sera donc utilisable pour d'autres cartes et d'autres utilisateurs.

    Vous pouvez maintenant l'utiliser comme n'importe quel attribut de la couche, par exemple pour réaliser un rendu par dégradé de couleurs.


      
  8. Par exemple, pour représenter ce taux d'évolution, on utilisera un dégradé de type "Supérieur et inférieur" en centrant les plages de valeurs sur "0" afin de distinguer les évolutions positives et négatives.


      
  9. Cliquer sur le bouton "OK" pour valider les propriétés du dégradé puis sur le bouton "Terminer" pour valider le rendu.
     
En utilisant des expressions Arcade, vous pouvez aller très loin en termes de calcul de valeurs dynamiques dans vos couches. Le langage Arcade propose des fonctions de traitement de chaînes, de dates, de nombres, de géométries, ... .Arcade propose également des fonctions pour réaliser des tests conditionnels (IIf(), When(), ...) ce qui vous permettra donc de rédiger des expressions très avancées. Il ne vous reste plus qu'à vous familiariser avec ce langage simple et puissant que vous retrouvez nous seulement dans le contexte des cartes web mais aussi dans ArcGIS Pro et dans les solutions de développement (API JavaScript et SDKs Runtime).

  
Bonne route sur ArcGIS Online !
   
Pour retrouver l'ensemble des Conseils & Astuces ArcGIS Online, cliquez sur ce lien

Partager cet article:

Rejoindre la discussion

    Les commentaires à propos de cet article:

2 comments :

Vincent T. a dit…

Bonjour,

Arcade permet bien de créer des expressions dynamiques à partir de différents champs dans une couche, mais peut-on créer dans une couche des expressions à partir de champs d'autres couches, comme on peut le faire dans les pop-up avec FeatureByName, ou FeatureByID ? Par exemple, utiliser une couche de polygone, et y associer des valeurs issues d'une table autonome ?
Merci.

Gaëtan Lavenu a dit…

Bonjour,

Oui, Arcade permet de récupérer des entités issues d'autres couches de la carte ou même des couches non présentes dans la carte. Pour cela, il y a effectivement des instructions comme FeatureSetByID, FeatureSetByName. La recherche d'entités peut se faire sur des critères attributaire ou sur la géométrie des entités.

J'ai récemment posté des exemples dans le contexte de fenêtres contextuelles dans ces 2 articles :
https://www.arcorama.fr/2023/01/conseils-astuces-arcgis-online-n158.html
https://www.arcorama.fr/2023/01/conseils-astuces-arcgis-online-n159.html

Vous pouvez aussi accéder aux entités qui sont dans une table en relation avec FeatureSetByRelationshipName.