MapBox:更改现有多边形的颜色

时间:2015-03-19 14:15:02

标签: colors polygon options mapbox

我尝试使用以下代码更改MapBox地图上多边形的颜色,之后它已经添加到地图中。

parishPolygon990 = L.polygon([ vertices ], { color: "#0000FF" }).addTo(map);

console.log(parishPolygon990); // returns #0000FF
console.log(parishPolygon990.options['color']); // returns #0000FF
parishPolygon990.options.color = '#d31603';
console.log(parishPolygon990); // returns #d31603
console.log(parishPolygon990.options['color']); // returns #d31603

您可以看到多边形的颜色值更新,但地图上的多边形不会改变颜色。

如何在添加多边形之后以编程方式更改多边形的颜色?

谢谢!

1 个答案:

答案 0 :(得分:2)

使用从setStyle扩展的L.Path的{​​{1}}方法:

L.Polygon

关于Plunker的工作示例:http://plnkr.co/edit/vL0rAoKQGhV8zri8mDz7?p=preview

参考:http://leafletjs.com/reference.html#path-setstyle

如果你真的想通过更改选项对象来实现,那么之后你需要调用var polygon = L.polygon([[45,45],[-45,45],[-45,-45],[45,-45]]).addTo(map); polygon.setStyle({'color': 'yellow'}); 的{​​{1}}方法:

_updateStyle

但由于L.Path表明它是polygon.options.color = 'yellow'; polygon._updateStyle(); 的内部方法,并且不属于API,因此您应该避免使用它,因为它可能会在Leaflet的未来版本中发生变化。我想我应该提一下。