ठीक है, चूंकि मैंने पहले से ही इस बारे में एक बहुत लंबा सवाल पूछा था, लेकिन चूंकि इसे थोड़ी देर के लिए कोई नया जवाब नहीं मिला, और विवरणों में भ्रमित नहीं होने के लिए, मैं इसे एक सरल सबसे अच्छा तरीका रखूंगा जो मैं कर सकता हूं।
यदि मैं गलत नहीं हूँ, तो एक 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;
}
}
});
मैं जो करना चाहता हूं, वह सिर्फ एक देश को नीला और दूसरे को ग्रे, बाद में कोड में बनाना है। सभी देशों को ग्रे रंग में रंगना और फिर एक नीला बनाना दो चरणों वाली बात है।
पहली बात यह है कि मुझे ऐसे लूप की जरूरत है जो प्रत्येक फीचर पर और setStyle()
सभी देशों के लिए ग्रे हो। क्या यह काम करता है अगर मैं सिर्फ everything.setStyle({color: "#4B1BDE"})
या कुछ और?
दूसरी बात यह है कि, (यह मुझे रातों की नींद हराम कर रहा है) कि मैं कैसे काम करने के लिए GeoJSON बहुभुजों के समूह में से सिर्फ एक फीचर का चयन करूं? बस उस देश को जिसे मुझे नीले रंग में रंगना है।
यदि यह माउस हॉवरिंग की बात होती है, तो मैं एक ईवेंट श्रोता को जगह दे सकता हूं जैसा कि कैटलॉग ट्यूटोरियल में किया जाता है। लेकिन उपयोगकर्ता की बातचीत की परवाह किए बिना, मैं स्टाइल को उसके नाम से कॉल करके सेट और रीसेट करना चाहता हूं, जैसा कि मैंने ऊपर आयत के साथ किया था।
setStyle()
कार्य को इंगित करने के लिए धन्यवाद ।