2013-03-25 37 views
23

Broşürü bilen herkes için, poligonun rengini dinamik olarak değiştirmenin bir yolunu biliyor musunuz? Bir kullanıcı (örneğin) bir arayüz üzerinde bir yerlerde bir düğmesini tıkladıktan sonra, böyle çemberin rengini değiştirmek istiyorum, daha sonra SonraYaprakçıktaki poligonun rengini dinamik olarak değiştirin?

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

:

Örneğin, bu gibi tanımlanmış bir daire almak
window.circle.options.fillColor = "#dddddd"; 

Kod, window.circle.options.fillColor için değeri değiştirir, ancak değişiklik haritada çokgen renginde yapılan bir değişiklikle yansıtılmaz. Aradım ama hiçbir şey bulamadım. Herhangi bir fikir?

Teşekkürler.

cevap

34

L.Circle yöntemi setStyle(<Path options> object) sahip olduğunu, L.Path (http://leafletjs.com/reference.html#path) uzanır ve böyle bir şey arıyorsanız size window.circle.setStyle({fillColor: '#dddddd'});

+0

Mükemmel çalışır. Teşekkürler! – Owen

+4

Bu, görünümü değiştirmek için iyi görünüyor. Ancak, bunu denediğimde, kaydetmem için koddaki o katmana yansıtılmıyor gibi görünüyor. Stili kurduktan sonra bir şekilde güncellemem gerekiyor mu? – Josh

1

olarak yeni bir stil uygulayabilirsiniz:

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

Bu seçenekler şunlardır kullanılabilir GeoJSON için Örneğin: L.geojson() .....: Çokgen için, D

. )},

circle.setStyle({ 
    color: 'red' 

deneyin;

İlgili konular