我正在使用leaflet在地图上绘制圆形层(因此有几个层,每个层由多个圆组成)。
我已将所有层保存在要素组中:
this.globalLayer = L.featureGroup();
我正在通过创建圆形的新要素组,并将该要素组添加到全局图层中来向其中添加新圆:
let circleLayer: L.featureGroup();
let point1 = L.circle([pos_lat, pos_long], {color: color, opacity: 1,
radius: radius});
let point2 = L.circle([pos_lat, pos_long], {color: color, opacity: 1,
radius: radius});
circleLayer.addLayer(point1);
circleLayer.addLayer(point2);
// etc.
this.globalLayer.addLayer(circleLayer);
现在我想为一些图层添加CSS类:
for (let cssLayer of cssLayers) { // cssLayers is a L.featureGroup[]
this.globalLayer.removeLayer(cssLayer);
cssLayer.setStyle({className: 'animate'});
this.globalLayer.addLayer(cssLayer);
}
这个方法可以实现,但由于图层中包含许多圆形,计算时间较长。有没有一种方法只需添加CSS类而无需删除和再次添加呢?
我已经尝试过。
this.globalLayer.eachLayer(layer => {
layer.setStyle({className: 'animate'})
});
但是setStyle()
在类型L.Layer
上不存在。
这里是我目前的解决方案的JsFiddle链接。