좋아, 나는 이미 이것에 대해 매우 긴 질문을했지만, 잠시 동안 새로운 답글을 얻지 못했고 세부 사항에 혼동하지 않기 때문에이 방법을 가장 간단하게 유지할 것입니다.
내가 실수하지 않으면 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;
}
}
});
내가하고 싶은 것은 나중에 코드에서 한 국가를 파란색으로 만들고 다른 국가를 회색으로 만드는 것입니다. 모든 국가를 회색으로 칠한 다음 파란색을 만드는 것은 2 단계입니다.
첫 번째는 각 기능을 반복하고 setStyle()
모든 국가가 회색으로 반복하는 루프가 필요하다는 것 입니다. 내가 그냥 everything.setStyle({color: "#4B1BDE"})
또는 무언가 하면 작동합니까 ?
두 번째는 (저는 잠들지 않는 밤을줍니다) GeoJSON 다각형 그룹에서 작업 할 기능 을 하나만 어떻게 선택 합니까? 파란색으로 칠해야 할 나라입니다.
마우스 호버링 문제라면 Leaflet 튜토리얼에서와 같이 이벤트 리스너를 배치 할 수 있습니다. 그러나 사용자 상호 작용에 관계없이 위의 사각형과 마찬가지로 이름을 사용하여 스타일을 설정하고 재설정하고 싶습니다.
setStyle()
기능 을 지적 해 주셔서 감사합니다 .