Renderer: give featureId to eraseGeometry function, r=fredj (closes #2693)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@10435 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -265,8 +265,9 @@ OpenLayers.Renderer = OpenLayers.Class({
|
|||||||
features = [features];
|
features = [features];
|
||||||
}
|
}
|
||||||
for(var i=0, len=features.length; i<len; ++i) {
|
for(var i=0, len=features.length; i<len; ++i) {
|
||||||
this.eraseGeometry(features[i].geometry);
|
var feature = features[i];
|
||||||
this.removeText(features[i].id);
|
this.eraseGeometry(feature.geometry, feature.id);
|
||||||
|
this.removeText(feature.id);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -277,8 +278,9 @@ OpenLayers.Renderer = OpenLayers.Class({
|
|||||||
*
|
*
|
||||||
* Parameters:
|
* Parameters:
|
||||||
* geometry - {<OpenLayers.Geometry>}
|
* geometry - {<OpenLayers.Geometry>}
|
||||||
|
* featureId - {String}
|
||||||
*/
|
*/
|
||||||
eraseGeometry: function(geometry) {},
|
eraseGeometry: function(geometry, featureId) {},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Method: moveRoot
|
* Method: moveRoot
|
||||||
|
|||||||
@@ -27,14 +27,6 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, {
|
|||||||
*/
|
*/
|
||||||
features: null,
|
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
|
* Constructor: OpenLayers.Renderer.Canvas
|
||||||
*
|
*
|
||||||
@@ -47,7 +39,6 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, {
|
|||||||
this.container.appendChild(this.root);
|
this.container.appendChild(this.root);
|
||||||
this.canvas = this.root.getContext("2d");
|
this.canvas = this.root.getContext("2d");
|
||||||
this.features = {};
|
this.features = {};
|
||||||
this.geometryMap = {};
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -58,9 +49,10 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, {
|
|||||||
*
|
*
|
||||||
* Parameters:
|
* Parameters:
|
||||||
* geometry - {<OpenLayers.Geometry>}
|
* geometry - {<OpenLayers.Geometry>}
|
||||||
|
* featureId - {String}
|
||||||
*/
|
*/
|
||||||
eraseGeometry: function(geometry) {
|
eraseGeometry: function(geometry, featureId) {
|
||||||
this.eraseFeatures(this.features[this.geometryMap[geometry.id]][0]);
|
this.eraseFeatures(this.features[featureId][0]);
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -122,9 +114,6 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, {
|
|||||||
style = this.applyDefaultSymbolizer(style);
|
style = this.applyDefaultSymbolizer(style);
|
||||||
|
|
||||||
this.features[feature.id] = [feature, style];
|
this.features[feature.id] = [feature, style];
|
||||||
if (feature.geometry) {
|
|
||||||
this.geometryMap[feature.geometry.id] = feature.id;
|
|
||||||
}
|
|
||||||
this.redraw();
|
this.redraw();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -855,14 +855,15 @@ OpenLayers.Renderer.Elements = OpenLayers.Class(OpenLayers.Renderer, {
|
|||||||
*
|
*
|
||||||
* Parameters:
|
* Parameters:
|
||||||
* geometry - {<OpenLayers.Geometry>}
|
* geometry - {<OpenLayers.Geometry>}
|
||||||
|
* featureId - {String}
|
||||||
*/
|
*/
|
||||||
eraseGeometry: function(geometry) {
|
eraseGeometry: function(geometry, featureId) {
|
||||||
if ((geometry.CLASS_NAME == "OpenLayers.Geometry.MultiPoint") ||
|
if ((geometry.CLASS_NAME == "OpenLayers.Geometry.MultiPoint") ||
|
||||||
(geometry.CLASS_NAME == "OpenLayers.Geometry.MultiLineString") ||
|
(geometry.CLASS_NAME == "OpenLayers.Geometry.MultiLineString") ||
|
||||||
(geometry.CLASS_NAME == "OpenLayers.Geometry.MultiPolygon") ||
|
(geometry.CLASS_NAME == "OpenLayers.Geometry.MultiPolygon") ||
|
||||||
(geometry.CLASS_NAME == "OpenLayers.Geometry.Collection")) {
|
(geometry.CLASS_NAME == "OpenLayers.Geometry.Collection")) {
|
||||||
for (var i=0, len=geometry.components.length; i<len; i++) {
|
for (var i=0, len=geometry.components.length; i<len; i++) {
|
||||||
this.eraseGeometry(geometry.components[i]);
|
this.eraseGeometry(geometry.components[i], featureId);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
var element = OpenLayers.Util.getElement(geometry.id);
|
var element = OpenLayers.Util.getElement(geometry.id);
|
||||||
|
|||||||
Reference in New Issue
Block a user