Ok, vì tôi đã hỏi một câu hỏi rất dài về vấn đề này, nhưng vì nó không nhận được bất kỳ câu trả lời mới nào trong một thời gian, và không bị nhầm lẫn chi tiết, tôi sẽ giữ câu hỏi này đơn giản nhất có thể.
Nếu tôi không nhầm, một setStyle
chức năng cho một tính năng cụ thể được đặt tên sẽ như sau:
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"});
... sẽ thay đổi màu từ cam sang xanh. Tôi cũng nhận thức được resetStyle()
chức năng sẽ hoàn nguyên kiểu dáng ban đầu.
Đây là cách tôi tạo kiểu GeoJSON của mình:
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;
}
}
});
Những gì tôi muốn làm là làm cho chỉ một quốc gia màu xanh và các quốc gia khác màu xám, sau đó trong mã. Đó là một điều hai bước, để sơn tất cả các quốc gia thành màu xám, và sau đó làm cho một màu xanh.
Điều đầu tiên là, tôi cần một vòng lặp như vậy sẽ lặp lại qua từng tính năng và setStyle()
cho tất cả các quốc gia thành màu xám. Nó có hoạt động nếu tôi chỉ everything.setStyle({color: "#4B1BDE"})
hoặc một cái gì đó?
Điều thứ hai là, (điều đó mang lại cho tôi những đêm không ngủ) làm cách nào để tôi chỉ chọn một tính năng trong số một nhóm đa giác GeoJSON để làm việc? Chỉ là đất nước mà tôi cần sơn thành màu xanh.
Nếu đó là vấn đề di chuột, tôi có thể đặt một trình lắng nghe sự kiện như được thực hiện trong hướng dẫn của Tờ rơi. Nhưng bất kể tương tác của người dùng, tôi muốn đặt và đặt lại kiểu bằng cách gọi nó với tên của nó, như tôi đã làm với hình chữ nhật ở trên.
setStyle()
chức năng của tờ rơi .