Suite

Comment parcourir les attributs d'une entité dans Leaflet ?


Je reçois des polygones via le API REST ESRI avec Brochure. Je souhaite parcourir tous les attributs d'une fonctionnalité afin de créer une fenêtre contextuelle personnalisée pour celle-ci.

Mon code ressemble à ceci :

myLayer.on('click', function (evt) { feature = evt.layer.feature; //Ici je veux itérer… }

Je sais que je peux accéder aux attributs comme ceci :

feature.properties.myAttribute

Mais comment puis-je parcourir tous les attributs ?


Si ma compréhension est correcte, vous souhaitez lire toutes les propriétés de la couche d'événements donnée, sans savoir à l'avance quelles propriétés sont définies et disponibles ?

Dans ce cas, il s'agit d'un simple problème JavaScript, pour lequel vous pouvez utiliser Object.keys(feature.properties) pour obtenir le tableau des "attributs" disponibles dansfeature.properties. Ensuite, itérez simplement sur ce tableau :

myLayer.on('click', function (evt) { var feature = evt.layer.feature, props = feature.properties, attrs = Object.keys(props), attribut, value; for (var i = 0; i < attrs.length; i += 1) { attribut = attrs[i]; value = props[attribut]; // utilise la valeur pour faire quelque chose… } });

Vous pouvez également utiliser le for… dans :

for (attribut in props) { value = props[attribut]; }