Le blog francophone consacré
aux technologies Esri

Conseils & Astuces ArcGIS Online - N°193

N° 193 - Créer des symboles ponctuels pour afficher des jauges dynamiques


Afficher des jauges permet de rendre plus compréhensible (et parfois même plus ludique) la représentation de pourcentages. Par exemple, si vous gérer des réservoirs d'eau, des pourcentage de production d'éoliennes, des stations météo, des remplissages de parkings,... vous pouvez utiliser les capacités de représentation d'ArcGIS et un peu d'Arcade pour obtenir de belles jauges graphiques. Dans cet article, je vous propose de décrire le principe pour que vous puissiez ensuite l'adapter à vos propres cas d'usage.

Le principe général consiste à utiliser la couche de points contenant les valeurs à représenter puis de la dupliquer dans votre carte. L'idée est de pouvoir appliquer un premier symbole (le cadran de la jauge) sur la première couche et un second symbole (l'aiguille de la jauge) sur la seconde couche. L'usage des options de rotation de symboles ponctuels permettra, avec un peu d'Arcade, d'obtenir une aiguille correctement orientée sur le cadran pour représenter vos pourcentages (ou tout autre intervalle de valeurs).




Prenons l'exemple de capteurs qui indique le remplissage actuel et la capacité maximum de réservoirs pétroliers. Voyons comment représenter les taux de remplissage de ces réservoirs avec des jauges graphiques.

  1. Dans l'application Map Viewer, nous ajoutons deux fois la couche de points correspondant à mes réservoirs pétroliers. Pour une gestion plus simple de la couche, nous avons créé un groupe de couche "Réservoirs pétroliers" dans lequel se trouve les deux représentation de la couche (aiguille et cadran).


  2. Pour la couche "Réservoirs pétroliers (cadran)", on appliquera un rendu par symbole unique en utilisant l'image du cadran.


    Dans les propriétés du symbole, vous indiquerez la taille du symbole et l'option d'ajustement de taille en fonction de l'échelle. Vous noterez la taille (ici: 50px) pour réutiliser la même taille pour l'image de l'aiguille.


  3. Pour la couche "Réservoirs pétroliers (aiguille)", on appliquera de la même manière un rendu par symbole unique en utilisant l'image de l'aiguille.


  4. Dans les propriétés de style de la couche, vous définirez les options suivantes :

    a. Vous activerez la rotation du symbole par attribut.



    b. Vous cliquerez sur le bouton "{}" d'accès aux expressions Arcade pour rédiger l'expression qui permettra d'obtenir l'angle de rotation de l'aiguille. Voici, l'expression correspondant aux données de notre couche des réservoirs qui possède un attribut "Capacité" et un attribut "Remplissage".


    L'expression Arcade commentée est reprise ci-dessous pour que vous puissiez la copier/coller:
    var capacite_pourcentage = 0;
    var capacite_entier = 0;
    var rotation = 0;
    
    // Calcul du pourcentage entre le remplissage actuel et la capacité totale
    capacite_pourcentage = ($feature["Remplissage"] / $feature["Capacité"]);
    
    // Conversion en nombre entier pour plus de commodité
    capacite_entier = capacite_pourcentage * 100;
    
    // Détermine la rotation de l'aiguille basée sur les repères du cadran.
    // L'aiguille pointe à un angle de 225° pour le 0% et 135° pour 100%.
    // L'amplitude est donc de 270° entre les deux repères du cadran.
    // Chaque pourcent correspond donc 270/10 = 2.7°
    
    rotation = round (capacite_entier * 2.7, 0);
    
    // Dans l'image de l'aiguille, cette dernière est déjà orientée à 225°, il
    // n'y a pas de constante à ajouter. Si l'aiguille était orientée au nord
    // dans l'image, la constante serait égale à 225.
    
    var constante_angle_aiguille = 0
    
    return constante_angle_aiguille + rotation;
    

    c. Enfin, vous indiquerez que les angles doivent être interprété dans la convention "Géographique".

  5. Après avoir validé le style de la couche, les jauges affichent le taux de remplissage des réservoirs.


  6. Pour compléter la représentation, il sera également possible d'ajouter une étiquette avec le pourcentage en dessous de la jauge. Pour cela, de nouveau, vous utiliserez une expression Arcade pour obtenir la valeur du pourcentage.



    L'expression Arcade à utiliser sera similaire à celle-ci :


    L'expression Arcade commentée est reprise ci-dessous pour que vous puissiez la copier/coller:
    var capacite_pourcentage = 0;
    var capacite_entier = 0;
    
    // Calcul du pourcentage entre le remplissage actuel et la capacité totale
    capacite_pourcentage = ($feature["Remplissage"] / $feature["Capacité"]);
    
    // Conversion en nombre entier (arrondi)
    capacite_entier = Round(capacite_pourcentage * 100);
    
    
    return capacite_entier + " %"

  7. Après avoir définie le style et le positionnement des étiquettes, votre carte ressemblera à ceci :



Remarques :
  • Vous pouvez utiliser d'autres images de jauges du moment qu'elle sont centrées sur le point de rotation de l'aiguille.
  • Il est beaucoup plus simple d'utiliser deux images (cadran et aiguille) de même taille.
  • Pour vos premiers tests, j'ai mis à votre disposition l'image de cadran et l'image d'aiguille que j'ai utilisé pour cet article.


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: