これについてはすでに非常に長い質問をしましたが、しばらくの間は新しい返信を受け取らず、詳細を混乱させないため、この方法をできる限りシンプルに保ちます。
間違っていなければsetStyle
、名前付きの特定の機能の関数は次のようになります。
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"});
...色がオレンジから青に変わります。またresetStyle()
、スタイルを元に戻す関数についても知っています。
これが私の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;
}
}
});
私がやりたいのは、コードの後半で、1つの国だけを青にし、他の国を灰色にすることです。すべての国を灰色にペイントしてから、1つを青にするという2段階の作業です。
最初に、各機能を繰り返し処理しsetStyle()
、すべての国が灰色になるようなループが必要です。私だけでeverything.setStyle({color: "#4B1BDE"})
何かが機能しますか?
2番目は、(眠らない夜を与えてくれます)GeoJSONポリゴンのグループから1つのフィーチャのみを選択して操作するにはどうすればよいですか?ただ青に塗る必要がある国。
マウスのホバリングの問題であれば、Leafletチュートリアルで行われているようにイベントリスナーを配置できます。ただし、ユーザーの操作に関係なく、上記の四角形で行ったように、名前を付けてスタイルを設定およびリセットします。
setStyle()
機能を指摘していただきありがとうございます。