أكثر

إزالة / حذف معلم من طبقة متجه OpenLayers

إزالة / حذف معلم من طبقة متجه OpenLayers


لدي طبقة OpenLayers بها عدة نواقل. أنا أعرف معرف ميزة OpenLayers (مثل OpenLayers.Feature.Vector_241) وأود أن أعرف كيفية إزالة هذه الميزة وهذه الميزة فقط؟

لقد فكرت في حذفها جميعًا ثم مررت عبر مصفوفة لإعادة رسمها ، لكن هذا يبدو غير أنيق بعض الشيء ، وملفوفًا طويلًا.

لقد جربت العديد من الإصدارات من الكود التالي:

layer.removeFeatures (featureID) ؛

و

layer.removeFeatures ([featureID]) ؛

و

layer.removeFeatures ({feature: featureID}) ؛

إلخ…

كل المساعدة مرحب بها!

شكرا

ج


لا أعتقد أن OpenLayers قادر على إزالة ميزة من خلال توفيرمعرف. يبدو أنه لا يمكن إزالة الميزات إلا من خلال توفير ميزة أو مجموعة من الميزات:

layer.removeFeatures (featureObject) ؛

ولكن يمكنك بدلاً من ذلك تحديد موقع الميزة أولاً ثم إزالة الميزة التي تم العثور عليها:

layer.removeFeatures (layer.getFeatureById (featureID)) ،

أو ما شابه ذلك إذا لم يكن معرف ميزة OpenLayers لديك ، إذن

layer.removeFeatures (layer.getFeatureBy ('myId'، myID)) ؛

بالنسبة لـ OpenLayers الإصدار 6 + يتم ذلك بطريقة أخرى ، مع الأخذ في الاعتبار ذلكطبقةهو VectorLayer:

اسمح للميزة = layer.getSource (). getFeatureById ('featureID') ؛

getFeatureById ()


لقد نجح هذا بالنسبة لي:

* layer.removeFeatures (featureObject) ؛ *

لكن لدي الميزة كمتغير عالمي ، ربما في حالات أخرى يجب أن تحاول الاحتفاظ بمعرف الميزة من أجل البحث لإزالته.


شاهد الفيديو: Copy Subset Data from a Shapefile in QGIS