OpenLayers vektör katmanından bir özelliği kaldırma / silme


15

Birkaç vektör ile bir OpenLayers katmanı var. OpenLayers Özellik Kimliği'ni (ör. OpenLayers.Feature.Vector_241) biliyorum ve bu özelliği ve yalnızca bu özelliği nasıl kaldıracağımı bilmek istiyorum?

Hepsini silmeyi ve sonra onları yeniden çizmek için bir dizi arasında dolaşmayı düşündüm, ama bu biraz beceriksiz ve uzun soluklu görünüyor.

Folllowing kodunun çeşitli sürümlerini denedim:

layer.removeFeatures( featureID );

Ve

layer.removeFeatures( [featureID] );

Ve

layer.removeFeatures( {feature : featureID });

Vb...

Tüm yardımlara açığız!

Teşekkürler

C

Yanıtlar:


20

OpenLayers sağlayarak bir özelliği kaldırabileceğini sanmıyorum featureID. Bir özelliği yalnızca bir özellik veya özellik dizisi sağlayarak kaldırabilecek gibi görünüyor:

layer.removeFeatures(featureObject);

Ancak bunun yerine önce özelliği bulabilir ve sonra bulunan özelliği kaldırabilirsiniz:

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

Ya da benzer, eğer sahip olduğunuz OpenLayers FeatureID değilse,

layer.removeFeatures(layer.getFeatureBy('myId', myID));

Düşünmeyi seviyorum! Sorun, "layer.getFeatureById (featureID))" deyiminin null değerini döndürdüğü ve removeFeature () işlevinin çalışmadığıdır. Im% 100 olsa ben doğru FeatureIDs var .... daha fazla düşünce?
CatchingMonkey

1
Çizik. Yanlış özellik kimliği kullanıyordum. İkinci örneğinizi kullanıyorum ve mükemmel çalışıyor. Güzel!
CatchingMonkey

5

Bu benim için çalıştı:

*layer.removeFeatures(featureObject);*

Ama küresel bir değişken olarak özelliği var, belki diğer durumlarda kaldırmak için aramak için özellik kimliği tutmaya çalışmalısınız.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.