มากกว่า

ยกเลิกการเลือกคุณลักษณะที่เลือกด้วย selectInteraction ของ OpenLayers-3.8.2 ได้อย่างไร

ยกเลิกการเลือกคุณลักษณะที่เลือกด้วย selectInteraction ของ OpenLayers-3.8.2 ได้อย่างไร


ฉันใช้ OpenLayers-3.8.2 ฉันต้องการเลือกคุณสมบัติแล้วลบออก รหัสของฉันเป็นดังนี้:

deleteFeature = function (เหตุการณ์) { var feature = event.selected[0]; myLayer.getSource().removeFeature(ฟีเจอร์); } selectInteraction = ใหม่ ol.interaction.Select ({ เงื่อนไข: ol.events.condition.singleClick, toggleCondition: ol.events.condition.shiftKeyOnly, เลเยอร์: [myLayer] }) map.addInteraction (selectInteraction); selectInteraction.on("เลือก", deleteFeature, this);

รหัสนี้ลบคุณลักษณะจากแหล่งที่มา แต่ยังคงแสดงอยู่ในแผนที่

ฉันจะยกเลิกการเลือกคุณสมบัติได้อย่างไร? หรือฉันจะวาดเลเยอร์ใหม่ได้อย่างไร? หรือฉันจะลบฟีเจอร์ใน openlayers-3 ได้อย่างไร


คุณสามารถใช้ได้ชัดเจนฟังก์ชัน เปลี่ยนdeleteFeatureทำหน้าที่ดังต่อไปนี้:

deleteFeature = function (เหตุการณ์) { var feature = event.selected[0]; myLayer.getSource().removeFeature(ฟีเจอร์); เหตุการณ์.selected.clear(); }

บน ol3 3.11.2, theเหตุการณ์.selected.clear();ไม่มีอยู่ดังนั้นคุณต้องใช้selectionInteraction.getFeatures().clear();


ในเลเยอร์เปิด 5.2 คุณสามารถยกเลิกการเลือกคุณลักษณะดังนี้:

deleteFeature = function (เหตุการณ์) { var feature = event.selected[0]; myLayer.getSource().removeFeature(ฟีเจอร์); selectInteraction.getFeatures().remove(คุณสมบัติ); }


ดูวิดีโอ: Openlayers 6 Tutorial #6 - Layer Switcher