2013-03-25 94 views
23

对于熟悉Leaflet的人员,您是否知道动态更改多边形颜色的方法?例如,取这样限定的圆:动态更改小册子中多边形的颜色?

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.Pathhttp://leafletjs.com/reference.html#path),有方法setStyle(<Path options> object),你可以申请新的风格window.circle.setStyle({fillColor: '#dddddd'});

+0

完美地工作。谢谢! – Owen 2013-03-25 14:53:19

+4

这似乎很好地改变了外观。但是,当我尝试此操作时,它似乎并未反映在代码中的该层中,以便我保存。我在设置样式后应该以某种方式更新图层? – Josh 2015-07-16 22:31:19

1

如果您正在寻找这样的事情:可用

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

这些选项都是以GeoJSON数据即:L.geojson().....:D

因此,对于多边形。 Try,

circle.setStyle({ 
    color: 'red' 

});