2013-03-25 19 views
23

किसी भी व्यक्ति जो पत्रक से परिचित है, क्या आप बहुभुज के रंग को गतिशील रूप से बदलने का तरीका जानते हैं? एक उपयोगकर्ता एक बटन (उदाहरण के लिए) एक इंटरफेस पर कहीं क्लिक करता है के बाद, बाद मेंलीफलेट में बहुभुज के रंग को गतिशील रूप से बदलें?

window.circle = L.circle([51.508, -0.11], 500, { 
color: 'red', 
fillColor: '#ffffff', 
    fillOpacity: 0.5 
}).addTo(map); 

फिर, मैं इस तरह चक्र का रंग बदलने के लिए चाहते हैं: उदाहरण के लिए, एक चक्र इस तरह परिभाषित ले

window.circle.options.fillColor = "#dddddd"; 

कोड window.circle.options.fillColor के लिए मान बदलता है, लेकिन परिवर्तन नक्शे पर बहुभुज के रंग में परिवर्तन से प्रतिबिंबित नहीं होता है। मैंने चारों ओर खोज की है लेकिन कुछ भी नहीं मिला है। कोई विचार?

धन्यवाद।

उत्तर

34

L.Circle फैली L.Path (http://leafletjs.com/reference.html#path), है कि विधि setStyle(<Path options> object), और आप window.circle.setStyle({fillColor: '#dddddd'});

+0

पूरी तरह से काम करता है। धन्यवाद! – Owen

+4

यह उपस्थिति को बदलने के लिए अच्छी तरह से काम करता प्रतीत होता है। हालांकि, जब मैं इसे कोशिश करता हूं तो मुझे सहेजने के लिए कोड में उस परत में दिखाई नहीं देता है। क्या मैं स्टाइल सेट करने के बाद परत को किसी भी तरह अद्यतन करना चाहता हूं? – Josh

1

के रूप में नई शैली लागू कर सकते हैं आप देख रहे हैं कुछ इस तरह के लिए: GeoJSON के लिए

const circle = L.circle([lat, lng], { 
    style: style, 
    onEachFeature: onEachFeature, 
}); 

ये विकल्प उपलब्ध हैं डेटा यानी: एल .geojson() .....: डी

तो, बहुभुज के लिए। कोशिश करें,

circle.setStyle({ 
    color: 'red' 

});

संबंधित मुद्दे