Le blog francophone consacré
aux technologies Esri

Conseils & Astuces ArcGIS Online - N°157

N° 157 - Afficher une fenêtre contextuelle avec des valeurs relatives aux autres entités de la couche

Lorsque vous affichez des valeurs d'attribut dans une fenêtre contextuelle, il est parfois utile de pouvoir relativiser ou mettre en perspective cette valeur par rapport à la somme, la moyenne, le min/max, ... de tout ou partie des entités de la couche. Par exemple, si vous affichez la fréquentation annuelle d'un musée, il sera intéressant de comparer cette valeur à la fréquentation moyenne de tous les musées de la couche ou ceux de la même région. Pour cela, les expressions Arcade vous seront d'une aide précieuse et je vais vous montrer comment à travers un exemple concret.


Dans cet exemple, nous disposons de tous les magasins d'une enseigne de jardinage sur la France. Ces derniers sont organisés par secteurs commerciaux (Ile de France, Nord-Ouest, Sud-Ouest, ...) et contiennent des informations sur leur chiffre d'affaires. Notre objectif est d'afficher, dans la fenêtre contextuelle, la valeur de ce chiffre d'affaires mais également ce qu'il représente (en %) du chiffre d'affaires total de tous les magasins du même secteur commercial.

  1. Connectez-vous tout d'abord sur votre portail puis ouvrez la carte web contenant votre couche d'entités. Ici nos magasins de jardinage sont représentés à la fois par des couleurs correspondant aux 5 secteurs commerciaux et par une taille correspondant au chiffre d'affaires 2022.


  2. Dans la zone de configuration des fenêtres contextuelles la couche, vous pouvez supprimer l'élément "Liste de champs" proposé par défaut puis ajouter un élément de contenu Arcade. Ce dernier nous permettra de réaliser les calculs statistiques nécessaires et configurer un rendu personnalisé (en HTML) de nos informations.


  3. Dans l'éditeur Arcade, vous effacerez les instructions déjà présentes par l'expression Arcade ci-dessous :

    // On précise les attributs dont on va avoir besoin dans l'expression Arcade
    Expects($layer,"Secteur_com","CA2022")

    // On récupère la valeur du CA de l'année 2022
    var CA = $feature.CA2022
    // On récupère la valeur du secteur commercial de ce magasin
    var SecteurCom = $feature.secteur_com
    // On crée un FeatureSet avec uniquement les magasins de ce secteur commercial
    var FilteredLayer = Filter($layer, "Secteur_com = '" + SecteurCom +"'")
    // On calcule la somme du CA 2022 pour ces magasins
    var CA_Total = Sum(FilteredLayer, 'CA2022')
    // On calcule ce que représente le CA de ce magasin par rapport aux autres magasins du même secteur
    var Pourcentage_CA = CA * 100 / CA_Total

    // On revoie le texte souhaité avec les balises HTML nécessaires
    return {
    type : 'text',
    text : "<p>Le chiffre d'affaires 2022 de ce magasin est de <b>" + Text(CA,"###,###") + " €</b> soit <b>" + Text(Pourcentage_CA,"#.#") +
    "%</b> du secteur <b>" + SecteurCom + "</b></p>"
    }

    On notera l'usage de la fonction Filter() qui permet de créer un FeatureSet (un ensemble d'entités) en utilisant des critères de filtrage.

    On notera également l'usage de la fonction Sum() qui permet de faire un calcul statistique de type somme sur un FeatureSet.
     
  4. Vous pouvez maintenant cliquer sur le bouton "Terminé" pour valider l'expression.

  5. La fenêtre contextuelle s'affiche désormais avec les informations de chiffre d'affaires attendues.


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: