Eliminar / Eliminar una característica de la capa vectorial de OpenLayers

15

Tengo una capa de OpenLayers con varios vectores en ella. Conozco el ID de la característica de OpenLayers (por ejemplo, OpenLayers.Feature.Vector_241) y me gustaría saber cómo eliminar esta característica y solo esta característica.

He considerado eliminarlos todos y luego hacer un bucle a través de una matriz para volver a dibujarlos, pero esto parece un poco poco elegante y largo aliento.

He probado una variedad de versiones del siguiente código:

layer.removeFeatures( featureID );

Y

layer.removeFeatures( [featureID] );

Y

layer.removeFeatures( {feature : featureID });

Etc ...

¡Toda ayuda es bienvenida!

Gracias

C

    
pregunta CatchingMonkey 13.09.2011 - 14:59

2 respuestas

20

No creo que OpenLayers sea capaz de eliminar una función al proporcionar featureID . Parece que solo puede eliminar una característica al proporcionar una característica o una variedad de características:

layer.removeFeatures(featureObject);

Pero en lugar de eso, primero podría ubicar la función y luego eliminar la función encontrada:

layer.removeFeatures(layer.getFeatureById(featureID));

O similar si no es el OpenLayers FeatureID que tienes, entonces

layer.removeFeatures(layer.getFeatureBy('myId', myID));
    
respondido por el Chau 13.09.2011 - 15:13
5

Esto me funcionó:

*layer.removeFeatures(featureObject);*

Pero tengo la característica como una variable global, tal vez en otros casos deberías intentar mantener la identificación de la característica para poder buscarla y eliminarla.

    
respondido por el Gorloki 22.12.2012 - 19:41

Lea otras preguntas en las etiquetas