Changer dynamiquement la couleur d'un polygone dans la fiche?

Pour quiconque est familier avec Leaflet, connaissez-vous un moyen de changer dynamiquement la couleur d'un polygone? Par exemple, prenez un cercle défini comme ceci:

window.circle = L.circle([51.508, -0.11], 500, {
color: 'red',
fillColor: '#ffffff',
    fillOpacity: 0.5
}).addTo(map);

Ensuite, après qu'un utilisateur clique sur un bouton quelque part sur une interface (par exemple), je veux changer la couleur du cercle comme ceci:

window.circle.options.fillColor = "#dddddd";

Le code change la valeur de window.cercle.option.fillColor, mais la modification n'est pas reflétée par une modification de la couleur du polygone sur la carte. J'ai cherché un peu partout mais n'ai rien trouvé. Des idées?

Merci.

23
demandé sur Owen 2013-03-25 04:48:55

2 réponses

L.Circle s'étend L.Path (http://leafletjs.com/reference.html#path), qui ont la méthode setStyle( <Path options> object ), et vous pouvez appliquer le nouveau style que window.circle.setStyle({fillColor: '#dddddd'});

34
répondu tbicr 2013-03-25 08:16:37

Si vous cherchez quelque chose comme ceci:

const circle = L.circle([lat, lng], {
   style: style,
   onEachFeature: onEachFeature,
});

Ces options sont disponibles pour les données geoJson, c'est-à-dire: L. geojson()..... : D

Donc, pour polygone . Essayez,

circle.setStyle({
    color: 'red'

});

2
répondu Bimal Grg 2017-11-24 06:15:23