N° 163 - Utiliser Arcade afficher des images en fonction d'un attribut
dans vos fenêtres contextuelles
Comme nous l'avons vu à plusieurs reprises dans les articles précédents, il
est parfois plus intéressant de représenter une valeur d'attribut à l'aide
d'un diagramme ou d'une image plutôt que sous la forme d'un simple texte ou
chiffre. Par exemple, si vous disposez d'une couche d'hôtels avec un attribut
décrivant leur classement (en nombre d'étoiles), il peut être sympa de les
représenter sous une forme graphique dans la fenêtre contextuelle.
C'est cet exemple d'une couche d'établissement hoteliers sur l'Ile-de-France
que je vous propose de détailler. Voici comment nous allons procéder :
-
Connectez-vous tout d'abord sur votre portail ArcGIS puis vérifiez que
vous avez publié et partagé de manière publique les imagettes à utiliser
dans la fenêtre contextuelle.
-
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. Si
certaines valeurs sont des url web correctement formatées, un lien
permet d'ouvrir cette url.
-
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 que si vous souhaitez adapter l'expression à vos images, vous devrez récupérer l'URL de chaque image (dans la page de description de chaque élément sur le portail) et mettre cette dernière au bon endroit dans le dictionnaire dict_images_etoiles.// On définit la liste des attributs utiles pour l'expression Arcade Expects($feature, "*") // On constitue un dictionnaire avec les clés qui correspondent aux valeurs de l'attribut "classement" et // on définit les url des images correspondantes. Ces images ont été préalablement publiées sur ArcGIS Online et // partagées de manière publique var dict_images_etoiles = { "0 étoile": "https://esrifrance.maps.arcgis.com/sharing/rest/content/items/344236d89dd74b16a1c227eed854cf24/data", "1 étoile": "https://esrifrance.maps.arcgis.com/sharing/rest/content/items/2a6b3c22e69b4ae2b8cef55132861f02/data", "2 étoiles": "https://esrifrance.maps.arcgis.com/sharing/rest/content/items/d584233c0a324945b1deadaa6e255288/data", "3 étoiles": "https://esrifrance.maps.arcgis.com/sharing/rest/content/items/512f7673ec82495882a582a6b6af85d4/data", "4 étoiles": "https://esrifrance.maps.arcgis.com/sharing/rest/content/items/cf7ad35620c94d52882e04efe259a2b9/data", "5 étoiles": "https://esrifrance.maps.arcgis.com/sharing/rest/content/items/33acdfb7feae418db0152a114aac5321/data", } // Récupération de la valeur de l'attributs "Classement" var etoiles = $feature.Classement var url_image = dict_images_etoiles[etoiles] // On construit la chaine HTML pour présenter les attributs en utilisant un élément HTML <table> var HTML = "<table>" HTML += "<tr><td>Adresse :</td><td>" + $feature.Rue + " " + $feature.CP + " " + $feature.Ville + "</td></tr>" HTML += "<tr><td>Tel :</td><td>" + Text($feature.Tel) + "</td></tr>" HTML += "<tr><td>Email :</td><td><a href='mailto:" + $feature.email + "'>Contact email</a></td></tr>" HTML += "<tr><td>Site web :</td><td><a href='https://" + $feature.site_web + "'>Site web</a></td></tr>" HTML += "<tr><td>Nb de champbres :</td><td>" + $feature.chambres + "</td></tr>" HTML += "<tr><td>Classement:</td><td><img width='100px' src='" + url_image + "'/></td></tr>" HTML += "</table>" // On renvoie la chaine HTML pour définir le contenu de la fenêtre contextuelle return { type : 'text', text : HTML }
-
Vous pouvez maintenant cliquer sur le bouton "Terminé" pour
valider l'expression.
-
La fenêtre contextuelle s'affiche désormais avec les informations
textuelles et le classement de l'hôtel présenté de manière graphique.
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