OpenLayers वेक्टर लेयर से एक फीचर को हटाएं / हटाएं


15

मेरे पास एक OpenLayers परत है जिस पर कई वैक्टर हैं। मैं OpenLayers फ़ीचर ID (उदाहरण के लिए OpenLayers.Feature.Vector_241) जानता हूं और मैं जानना चाहता हूं कि इस सुविधा को कैसे हटाया जाए और केवल इस सुविधा को?

मैंने उन सभी को हटाने पर विचार किया है और फिर उन्हें फिर से तैयार करने के लिए एक सरणी के माध्यम से लूपिंग किया है, लेकिन यह थोड़ा अयोग्य, और लंबे समय तक घुमावदार लगता है।

मैंने folllowing कोड के विभिन्न संस्करणों की कोशिश की है:

layer.removeFeatures( featureID );

तथा

layer.removeFeatures( [featureID] );

तथा

layer.removeFeatures( {feature : featureID });

आदि...

सभी मदद का स्वागत है!

धन्यवाद

सी

जवाबों:


20

मुझे नहीं लगता कि OpenLayers एक सुविधा प्रदान करने में सक्षम है featureID। ऐसा लगता है कि यह केवल एक सुविधा या सुविधाओं की एक सरणी प्रदान करके सुविधाओं को हटा सकता है:

layer.removeFeatures(featureObject);

लेकिन आप इसके बजाय पहले फीचर का पता लगा सकते हैं और फिर पाया गया फीचर हटा सकते हैं:

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

या इसके समान यदि आपके पास OpenLayers FeatureID नहीं है, तो

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

मुझे सोच पसंद है! हालाँकि समस्या यह है कि "layer.getFeatureById (featureID))" कथन अशक्त है, और इसलिए removeFeature () काम नहीं करता है। Im 100% है कि मैं सही FeatureIDs हालांकि .... किसी भी अधिक विचार है?
CatchingMonkey

1
उसको खरोंचो। मैं गलत featureID का उपयोग कर रहा था। Im आपके दूसरे उदाहरण का उपयोग कर रहा है और यह पूरी तरह से काम करता है। अच्छा है!
CatchingMonkey

5

यह मेरे लिए काम किया:

*layer.removeFeatures(featureObject);*

लेकिन मुझे यह सुविधा वैश्विक वैरिएबल के रूप में मिली है, हो सकता है कि अन्य मामलों में आपको इसे हटाने के लिए खोज करने के लिए फीचर आईडी को रखने का प्रयास करना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.