Conseils & Astuces ArcGIS Online - N°166
N° 166 - Utiliser Arcade et une API tiers pour ajouter un diagramme
polaire dans vos fenêtres contextuelles
Représenter les valeurs de différents attributs de vos entités dans une
fenêtre contextuelle, c'est très simple et cela peut se faire de plusieurs
manières (liste de champ, tableau de chiffres, diagramme en barre, texte
formaté, ...) sans aucune expression Arcade à écrire. Si vous souhaitez être
un peu plus original, et si le nombre d'attributs n'est pas trop important,
vous pouvez essayer des représentations plus graphiques comme les diagrammes
polaires (ou radiaux). Vous en voyez un exemple ci-dessous.
Dans cet exemple, nous disposons d'une couche d'entités des communes sur
la région Haut-de-France avec, pour chaque commune, le nombre
d'équipements. Ces équipements sont classés dans 10 catégories (donc 10
attributs). Etant donné que les diagrammes polaires ne sont pas des
éléments disponibles en standard dans les fenêtres contextuelles ArcGIS,
nous utiliserons donc une API tiers pour les générer. Voici donc comment
nous allons procéder :
-
Connectez-vous tout d'abord sur votre portail ArcGIS puis ouvrez la
carte web contenant la couche d'entités. Par défaut, la fenêtre
contextuelle présente la liste des différents attributs.
-
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.
-
Dans l'éditeur Arcade, vous effacerez les instructions déjà présentes
par l'expression Arcade ci-dessous :
On notera l'usage de l'API QuickChart qui permet de générer différents types de diagrammes à partir d'une url et une série de paramètres. Celle-ci est basée sur des librairies Open Source que vous pouvez installer sur votre propre serveur ou utiliser en ligne de manière gratuite (avec une limite sur le nombre de requêtes). Une version payante permet un accès illimité.//On indique les attributs nécessaires à notre expression Arcade Expects($feature,"*") // On définit un tableau avec les intitulés des catégories var array_labels=['Services de santé', 'Action sociale', 'Commerce','Enseignement 1er degrés', 'Enseignement 2nd degrés', 'Enseignement supérieur','Médical et Paramédical', 'Services aux particuliers', 'Sport, Loisir et Culture', 'Tourisme et transport'] // On définit un tableau avec les noms de attributs de chaque catégorie var array_fields=["Services_de_santé","Action_sociale","Commerce","Enseignement_du_1er_degré", "Enseignement_du_2nd_degré","Enseignement_supérieur__formati","Fonctions_médicales_et_paramédi", "Services_aux_particuliers","Sport__loisir_et_culture","Tourisme_et_transports"] // On définit les couleurs de représentation des catégories var array_colors=['rgba(255, 99, 132, 0.7)', 'rgba(255, 159, 64, 0.7)', 'rgba(154, 162, 235, 0.7)', 'rgba(55, 205, 86, 0.7)', 'rgba(54, 162, 235, 0.7)', 'rgba(255, 255, 32, 0.7)', 'rgba(155, 23, 64, 0.7)', 'rgba(75, 192, 192, 0.7)', 'rgba(75, 12, 192, 0.7)', 'rgba(255, 20, 86, 0.7)', ] // On instancie un tableau pour stocker les valeurs de consommation // puis on boucle sur les différents attributs pour récupérer les valeurs var array_data=[] for (var i in array_fields){ Push(array_data,Round($feature[array_fields[i]])) } // On définit les paramètres du diagramme circulaire qui sera généré par l'API QuickChart // On s'est basé sur le modèle de diagramme suivant : https://tinyurl.com/u8bc8vxe var param_chart = { type: 'polarArea', data: { datasets: [ { data: array_data, backgroundColor: array_colors, label: 'Equipements', }, ], labels: array_labels, }, options: { legend: { position: 'right', }, title: { display: true, text: 'Répartition des équipements\n', fontSize: 17, }, }, } // On encode la partie paramètres pour en faire une URL correctement formatée var param_url = UrlEncode(Text(param_chart)) // On construit l'URL complète permettant de générer l'image du diagramme polaire var url = "https://quickchart.io/chart?c=" + param_url // Enfin, on renvoie la chaîne HTML complète return { type : 'text', text : `<img src='${url}' />` }
On notera également l'usage du caractère backtick ( ` et non ') pour utiliser des littéraux et construire la chaîne HTML souhaitée.
-
Vous pouvez maintenant cliquer sur le bouton "Terminé" pour valider l'expression.
-
La fenêtre contextuelle s'affiche désormais avec les informations sur
le nombre d'équipements dans un diagramme polaire avec la légende
associée.
J'espère que cet exemple vous inspirera et que vous pourrez l'adapter
à vos cas d'usage.
Bonne route sur ArcGIS Online !
Pour retrouver l'ensemble des Conseils & Astuces ArcGIS
Online, cliquez sur ce lien
0 comments :
Enregistrer un commentaire