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.
-
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).
-
Pour la couche "Réservoirs pétroliers (cadran)", on appliquera un rendu
par symbole unique en utilisant l'image du cadran.
-
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.
-
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".
-
Après avoir validé le style de la couche, les jauges affichent le taux
de remplissage des réservoirs.
-
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 + " %"
- 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.
0 comments :
Enregistrer un commentaire