diff --git a/lib/OpenLayers/Layer/Vector.js b/lib/OpenLayers/Layer/Vector.js index 870f6cb566..23db07af29 100644 --- a/lib/OpenLayers/Layer/Vector.js +++ b/lib/OpenLayers/Layer/Vector.js @@ -407,19 +407,14 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, { } if(!zoomChanged && coordSysUnchanged) { - var unrenderedFeatures = {}; for(var i in this.unrenderedFeatures) { var feature = this.unrenderedFeatures[i]; - if(!this.drawFeature(feature)) { - unrenderedFeatures[i] = feature; - } + this.drawFeature(feature); } - this.unrenderedFeatures = unrenderedFeatures; } } if (!this.drawn || zoomChanged || !coordSysUnchanged) { - this.unrenderedFeatures = {}; this.drawn = true; var feature; for(var i=0, len=this.features.length; i} * style - {Object} Symbolizer hash or {String} renderIntent - * - * Returns: - * {Boolean} true if the renderer was able to draw the feature, false - * otherwise */ drawFeature: function(feature, style) { if (typeof style != "object") { @@ -618,7 +605,11 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, { } } - return this.renderer.drawFeature(feature, style); + if (!this.renderer.drawFeature(feature, style)) { + this.unrenderedFeatures[feature.id] = feature; + } else { + delete this.unrenderedFeatures[feature.id]; + }; }, /**