Le blog francophone consacré
aux technologies Esri

Conseils & Astuces ArcGIS Online - N°163

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 :

  1. 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.


  2. 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.


  3. 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.


  4. Dans l'éditeur Arcade, vous effacerez les instructions déjà présentes par l'expression Arcade ci-dessous :
    // 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
    }
    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.

  5. Vous pouvez maintenant cliquer sur le bouton "Terminé" pour valider l'expression.

  6. 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

Partager cet article:

Rejoindre la discussion

    Les commentaires à propos de cet article: