[OpenLayers-Users] how to cleanly remove a vector layer
Mike Quentel
mikequentel at yahoo.com
Wed May 30 19:28:36 EDT 2007
Also, add the following to OpenLayers.Layer.Vector:
destroySelectedFeatures: function () {
for (var i = (this.selectedFeatures.length - 1); i >= 0; i--) {
var selectedFeature = this.selectedFeatures[i];
this.selectedFeatures = OpenLayers.Util.removeItem(this.selectedFeatures, selectedFeature);
this.renderer.eraseGeometry(selectedFeature.geometry);
}
},
Mike Quentel
----- Original Message ----
From: Mike Quentel <mikequentel at yahoo.com>
To: Roger Kunkel <rakunkel at ucdavis.edu>
Cc: users at openlayers.org
Sent: Wednesday, 30 May, 2007 5:22:48 PM
Subject: Re: [OpenLayers-Users] how to cleanly remove a vector layer
This might be of help to you...
OpenLayers.Control.EraseFeatures = OpenLayers.Class.create();
OpenLayers.Control.EraseFeatures.prototype =
OpenLayers.Class.inherit( OpenLayers.Control, {
/** @type OpenLayers.Control.TYPES */
type: OpenLayers.Control.TYPE_BUTTON,
trigger: function () {
if (this.map) {
var map = this.map;
for(i = 0; i < map.layers.length; i++) {
var currentLayer = map.layers[i];
if (currentLayer.isVector) {
if (currentLayer.selectedFeatures.length > 0) {
currentLayer.destroySelectedFeatures();
} else {
currentLayer.destroyFeatures();
} //if (currentLayer.selectedFeatures...
} //if (currentLayer.isVector...
} // for (i = 0...
} //if (this.map...
},
/** @final @type String */
CLASS_NAME: "OpenLayers.Control.EraseFeatures"
});
Mike Quentel
----- Original Message ----
From: Roger Kunkel <rakunkel at ucdavis.edu>
To: Christopher Schmidt <crschmidt at metacarta.com>
Cc: users at openlayers.org
Sent: Wednesday, 30 May, 2007 3:35:07 PM
Subject: Re: [OpenLayers-Users] how to cleanly remove a vector layer
Thanks for your reply.
I was using the removeFeatures incorrectly.
On May 30, 2007, at 1:53 PM, Christopher Schmidt wrote:
> On Wed, May 30, 2007 at 01:36:41PM -0700, Roger Kunkel wrote:
>>
>> I'm having trouble using and then removing a vector layer.
>> removeFeatures() - produces errors saying that the feature is not
>> defined when feature.geometry is referenced.
>
> map.layers[1].removeFeatures(map.layers[1].features); works for me on
> http://openlayers.org/dev/examples/vector-features.html .
>
>> calling destroy on the layer causes continuous mouse event errors
>> - it seems that the getFeatureFromEvent method keeps getting called
>> even though I've destroyed the layer.
>
> Yep. That's a bug. The only piece of advice I have for that is to not
> destroy a layer if you have selectefatures handler on it :) I'll
> file it
> as a bug.
>
> Regards,
> --
> Christopher Schmidt
> MetaCarta
Roger Kunkel
CERES Program
Dept. of Land Air & Water Resources
UC Davis
rakunkel at ucdavis.edu
_______________________________________________
Users mailing list
Users at openlayers.org
http://openlayers.org/mailman/listinfo/users
___________________________________________________________
Yahoo! Answers - Got a question? Someone out there knows the answer. Try it
now.
http://uk.answers.yahoo.com/
___________________________________________________________
Yahoo! Mail is the world's favourite email. Don't settle for less, sign up for
your free account today http://uk.rd.yahoo.com/evt=44106/*http://uk.docs.yahoo.com/mail/winter07.html
More information about the Users
mailing list