Ok, da ich bereits eine sehr lange Frage dazu gestellt habe, aber seit einiger Zeit keine neuen Antworten mehr eingegangen sind und nicht im Detail verwirrt werden soll, werde ich diese so einfach wie möglich halten.
Wenn ich mich nicht irre, würde eine setStyle
Funktion für eine benannte, bestimmte Funktion wie folgt lauten:
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"});
... was die Farbe von orange nach blau ändern würde. Mir ist auch die resetStyle()
Funktion bekannt, mit der der Stil auf das Original zurückgesetzt wird.
So gestalte ich meinen 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;
}
}
});
Ich möchte nur ein Land blau und die anderen grau machen, später im Code. Es ist eine zweistufige Sache, alle Länder grau zu malen und dann eines blau zu machen.
Das erste ist, ich brauche eine solche Schleife, die über jedes Feature iteriert und setStyle()
für alle Länder grau wird. Funktioniert es, wenn ich nur everything.setStyle({color: "#4B1BDE"})
oder so?
Die zweite Sache ist (das gibt mir schlaflose Nächte), wie wähle ich nur ein Feature aus einer Gruppe von GeoJSON-Polygonen aus, mit denen ich arbeiten möchte ? Genau das Land, in dem ich blau streichen muss.
Wenn es sich um das Schweben mit der Maus handelte, konnte ich einen Ereignis-Listener platzieren, wie es in den Tutorials für Flugblätter gemacht wird. Unabhängig von der Benutzerinteraktion möchte ich den Stil festlegen und zurücksetzen, indem ich ihn wie im obigen Rechteck mit seinem Namen aufrufe.
setStyle()
Funktion der Broschüre hingewiesen haben .