Hi,

It seems, that 'beforefeatureadded' not works as one would expect. 

I would think, that the feature is already in the layers features array, but
still drawn on a temporary layer. Deleting the feature(s) works, but obvious
do not clear the temporary layer.

        function clearCircles(){
                console.log("Clearing existing circles");
          console.log(polygonLayer.features.length);
                polygonLayer.destroyFeatures(polygonLayer.features);
          polygonLayer.redraw();
        }//end clearCircles

You have to control, if there are more then one feature in the layer array.
Then you can delete the first.

polygonLayer.events.register("beforefeatureadded", polygonLayer,
function(evt){
    if(polygonLayer.features.length>1)
    {
        console.log("B:" + polygonLayer.features.length);
        polygonLayer.removeFeatures(polygonLayer.features[0]);
        console.log("--Clearing existing circles--");
        console.log("C:" + polygonLayer.features.length);
    }
    console.log("A:" + polygonLayer.features.length);
});//end attempt at events registration

As an better solution I would suggest to delete the previous feature, when
the drawing starts.

polygonLayer.events.on({
    sketchstarted: function(evt)
    {   if(polygonLayer.features[0])
        polygonLayer.removeFeatures(polygonLayer.features[0]);
    }
});

http://gis.ibbeck.de/olclient/examples/sketchstarted.html

Arnd

_______________________________________________
Users mailing list
[email protected]
http://openlayers.org/mailman/listinfo/users

Reply via email to