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

MapBox: Changing an existing polygon's color

我正在尝试使用以下代码更改我的 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

您可以看到多边形的颜色值更新了,但是地图上的多边形没有改变颜色。

添加多边形后如何以编程方式更改地图上的多边形颜色?

谢谢!

使用 L.PathsetStyle 方法,L.Polygon 扩展自:

var polygon = L.polygon([[45,45],[-45,45],[-45,-45],[45,-45]]).addTo(map);

polygon.setStyle({'color': 'yellow'});

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

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

如果您真的想通过更改选项对象来实现,则需要在之后调用 L.Path_updateStyle 方法:

polygon.options.color = 'yellow';
polygon._updateStyle();

但是 _ 表明它是 L.Path 的内部方法,而不是 API 的一部分,因此您应该避免使用它,因为它可能会在以后的 Leaflet 版本中发生变化.只是觉得我应该提一下。