diff --git a/src/ol/renderer/webgl/PointsLayer.js b/src/ol/renderer/webgl/PointsLayer.js index d6da17801d..b35e3831b7 100644 --- a/src/ol/renderer/webgl/PointsLayer.js +++ b/src/ol/renderer/webgl/PointsLayer.js @@ -290,7 +290,8 @@ class WebGLPointsLayerRenderer extends WebGLLayerRenderer { this.sourceListenKeys_ = [ listen(source, VectorEventType.ADDFEATURE, this.handleSourceFeatureAdded_, this), listen(source, VectorEventType.CHANGEFEATURE, this.handleSourceFeatureChanged_, this), - listen(source, VectorEventType.REMOVEFEATURE, this.handleSourceFeatureDelete_, this) + listen(source, VectorEventType.REMOVEFEATURE, this.handleSourceFeatureDelete_, this), + listen(source, VectorEventType.CLEAR, this.handleSourceFeatureClear_, this) ]; source.forEachFeature(function(feature) { this.featureCache_[getUid(feature)] = { @@ -339,6 +340,14 @@ class WebGLPointsLayerRenderer extends WebGLLayerRenderer { this.featureCount_--; } + /** + * @private + */ + handleSourceFeatureClear_() { + this.featureCache_ = {}; + this.featureCount_ = 0; + } + /** * @inheritDoc */