Objetivo:
En cualquier punto del tiempo, no sólo DEBE ser cero/uno de polígono(s) en una capa vectorial con un polígono de control. Necesito el anterior polígono para ser removido tan pronto como el usuario comienza a dibujar el primer vértice de la siguiente polígono.
Código:
var map = new OpenLayers.Map(mapDiv, options);
var tempLayer = new OpenLayers.Layer.Vector("Temp Layer");
map.addLayer(tempLayer);
var polyControl = new OpenLayers.Control.DrawFeature(tempLayer,OpenLayers.Handler.Polygon);
polyControl.events.register('featureadded', ' ', removeExistingPolygon);
function removeExistingPolygon(feature) //Assuming event listener gets a feature object
//Written mainly with featureadded in mind
{
if(feature.layer.features.length > 1){
feature.layer.removeFeatures(feature.layer.features[0]);
}
}
tempLayer.events.register(<event_name>, ' ', <prev_polygon_removal_function>);
Pregunta:
Lo event_name y la función se debe usar para alcanzar el objetivo? He intentado 'sketchstarted' en tempLayer pero se activa incluso antes de que el usuario comienza a dibujar un polígono. 'vertexmodified' no parece funcionar del todo.
El objetivo es parcialmente satisfecho cuando se utiliza featureadded con polyControl pero en ese caso, el primer polígono permanece visible hasta que el segundo se ha completado.
Alguna sugerencia sobre cómo proceder son más apreciados. Gracias.