diff --git a/lib/OpenLayers/Renderer.js b/lib/OpenLayers/Renderer.js index 90031d5815..ffcabd3c82 100644 --- a/lib/OpenLayers/Renderer.js +++ b/lib/OpenLayers/Renderer.js @@ -265,8 +265,9 @@ OpenLayers.Renderer = OpenLayers.Class({ features = [features]; } for(var i=0, len=features.length; i} + * featureId - {String} */ - eraseGeometry: function(geometry) {}, + eraseGeometry: function(geometry, featureId) {}, /** * Method: moveRoot diff --git a/lib/OpenLayers/Renderer/Canvas.js b/lib/OpenLayers/Renderer/Canvas.js index 6701c20ae8..ed743373d6 100644 --- a/lib/OpenLayers/Renderer/Canvas.js +++ b/lib/OpenLayers/Renderer/Canvas.js @@ -27,14 +27,6 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, { */ features: null, - /** - * Property: geometryMap - * {Object} Geometry -> Feature lookup table. Used by eraseGeometry to - * lookup features to remove from our internal table (this.features) - * when erasing geoms. - */ - geometryMap: null, - /** * Constructor: OpenLayers.Renderer.Canvas * @@ -47,7 +39,6 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, { this.container.appendChild(this.root); this.canvas = this.root.getContext("2d"); this.features = {}; - this.geometryMap = {}; }, /** @@ -58,9 +49,10 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, { * * Parameters: * geometry - {} + * featureId - {String} */ - eraseGeometry: function(geometry) { - this.eraseFeatures(this.features[this.geometryMap[geometry.id]][0]); + eraseGeometry: function(geometry, featureId) { + this.eraseFeatures(this.features[featureId][0]); }, /** @@ -122,9 +114,6 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, { style = this.applyDefaultSymbolizer(style); this.features[feature.id] = [feature, style]; - if (feature.geometry) { - this.geometryMap[feature.geometry.id] = feature.id; - } this.redraw(); }, diff --git a/lib/OpenLayers/Renderer/Elements.js b/lib/OpenLayers/Renderer/Elements.js index 4b60c1febf..a161f7be79 100644 --- a/lib/OpenLayers/Renderer/Elements.js +++ b/lib/OpenLayers/Renderer/Elements.js @@ -855,14 +855,15 @@ OpenLayers.Renderer.Elements = OpenLayers.Class(OpenLayers.Renderer, { * * Parameters: * geometry - {} + * featureId - {String} */ - eraseGeometry: function(geometry) { + eraseGeometry: function(geometry, featureId) { if ((geometry.CLASS_NAME == "OpenLayers.Geometry.MultiPoint") || (geometry.CLASS_NAME == "OpenLayers.Geometry.MultiLineString") || (geometry.CLASS_NAME == "OpenLayers.Geometry.MultiPolygon") || (geometry.CLASS_NAME == "OpenLayers.Geometry.Collection")) { for (var i=0, len=geometry.components.length; i