On Saturday, August 15, 2009, John Cartwright <[email protected]> wrote: > Thanks for your suggestion Eric. That was the first thing I tried, but it > doesn't clear the map, even with an explicit redraw() > vectorLayer.events.on({ "featuremodified": mapUpdated, > "beforefeatureadded": clearPreviousFeatures, > "featureadded": mapUpdated }); > > function clearPreviousFeatures(evt) { > vectorLayer.destroyFeatures(); vectorLayer.redraw(); } > function mapUpdated(evt) { console.log('Vector layer has > '+vectorLayer.features.length+' features'); > dojo.publish('mapUpdated',[evt.feature.geometry]); } > > Setting it up this way also seems to clear the newly added feature as well - > when the featureadded handler runs, it reports no features in the layer. > Is this what you had in mind?
Yes. I don't understand what's going on in your case. Maybe you should work on a minimal example, and possibly post it here for further guidance. Sorry for not being more helpful... > I really appreciate your help with this. > --john > > > On Aug 15, 2009, at 1:26 AM, Eric Lemoine wrote: > On Friday, August 14, 2009, John Cartwright > <[email protected]> wrote: > Hello All, > > I'm using OL 2.8 and trying to implement the behavior where the user can > digitize points, lines, or polygons, but only the last created feature > will be kept and displayed. I've attempted this via a handler on the > Layer's "beforefeatureadded" event like: > > function clearPreviousFeatures(evt) { > dojo.forEach(vectorLayer.features, function(f) { > if (http://f.id != http://evt.feature.id) { > vectorLayer.removeFeatures([f], {silent:true}); > } > }); > vectorLayer.redraw(); > > removing objects within a dojo.forEach loop may not be safe. > > why don't you have you beforefeatureadded listener destroy all > features (with layer.destroyFeature)? > > Cheers, > > > } > > > However, I find that the previous drawn features remain until the > DrawFeature control is changed. Also as soon as the second feature is > added, the code above complains that "f is undefined". Finally, any > features added subsequent to the first do not display in the style > defined for the layer. > > I feel like this should be a simple task and that I'm missing something > fundamental here. Can someone show me what's wrong or suggest a better > strategy for accomplishing this goal? > > Thanks! > > --john > > _______________________________________________ > Users mailing list > [email protected] > http://openlayers.org/mailman/listinfo/users > > > -- > Eric Lemoine > > Camptocamp France SAS > Savoie Technolac, BP 352 > 73377 Le Bourget du Lac, Cedex > > Tel : 00 33 4 79 44 44 96 > Mail : [email protected] > http://www.camptocamp.com > > -- Eric Lemoine Camptocamp France SAS Savoie Technolac, BP 352 73377 Le Bourget du Lac, Cedex Tel : 00 33 4 79 44 44 96 Mail : [email protected] http://www.camptocamp.com _______________________________________________ Users mailing list [email protected] http://openlayers.org/mailman/listinfo/users
