Ok, dal momento che ho già fatto una domanda molto lunga a riguardo, ma dal momento che non ho ricevuto nuove risposte per un po 'e non per confondermi nei dettagli, terrò questa semplice nel miglior modo possibile.
Se non sbaglio, una setStyle
funzione per un nome, una caratteristica particolare sarebbe la seguente:
var bounds = [[54.559322, -5.767822], [56.1210604, -3.021240]];
var rect = L.rectangle(bounds, {color: "#ff7800", weight: 1}).addTo(map);
rect.setStyle({color: "#4B1BDE"});
... che cambierebbe il colore dall'arancione al blu. Sono anche a conoscenza della resetStyle()
funzione che ripristinerà lo stile all'originale.
Ecco come modifico il mio GeoJSON:
var everything = L.geoJson(myfile, {
onEachFeature: function(feature){
array_of_layers.addLayer(feature);
},
style: function(feature){
switch(feature.properties.name){
case "belgium": return belgium_style; break;
case "bosnia": return bosnia_style; break;
case "denmark": return denmark_style; break;
case "great_britain": return britain_style; break;
case "greece": return greece_style; break;
case "italy": return italy_style; break;
case "serbia": return serbia_style; break;
case "spain": return spain_style; break;
}
}
});
Quello che voglio fare è rendere solo un paese blu e gli altri grigi, più avanti nel codice. È una cosa in due passaggi, dipingere di grigio tutti i paesi e poi renderne uno blu.
La prima cosa è che ho bisogno di un ciclo del genere che ritorni su ogni funzione e setStyle()
che tutti i paesi diventino grigi. Funziona se solo everything.setStyle({color: "#4B1BDE"})
o qualcosa del genere?
La seconda cosa è (che mi sta dando notti insonni) come posso selezionare solo una funzione da un gruppo di poligoni GeoJSON con cui lavorare? Solo il paese che ho bisogno di dipingere di blu.
Se si trattasse di passare il mouse, potrei posizionare un listener di eventi come nelle esercitazioni su Leaflet. Ma indipendentemente dall'interazione dell'utente, voglio impostare e ripristinare lo stile chiamandolo con il suo nome, come ho fatto con il rettangolo sopra.
setStyle()
funzione del volantino .