javascript - 如何在 OpenLayers 5 中删除绘图?

标签 javascript node.js drawing openlayers

我正在使用 OpenLayers 创建一个允许用户在其上绘图的 map 。 绘图选项是从官方文档中实现的并且可以工作。 https://openlayers.org/en/latest/examples/draw-features.html

我试图为用户提供删除他以前的绘图的选项。 按住“A”键您可以看到用户的选择。 现在,该选定的图形应该在松开按键的那一刻被删除(但什么也没发生)。

var select = new Select();

window.addEventListener('keydown', function (event) {
    // A
    if (event.keyCode == 65) {
        map.addInteraction(select);
    }
});
window.addEventListener('keyup', function (event) {
    if (event.keyCode == 65) {
        var selectedFeatures = select.getFeatures();
        selectedFeatures.clear();
        map.removeInteraction(select);
    }
});

我错过了什么?

最佳答案

由于我失去了发表评论的声誉,因此我必须将此作为答案发布。 首先,keyCodedeprecated ,现在您应该只使用 event.key,这也使代码对您来说更清晰,因为键只是 "a"

另一个问题是,您通过 select.getFeatures() 获取选定的功能,它返回一个功能或一个集合(请参阅 API )。该要素没有 clear 方法,但您可以获取图层,然后从其源中删除所选要素。这可能看起来像这样:

var selectSource = select.getLayer(selectedFeature).getSource();
selectSource.removeFeature(selectedFeature);

这是假设您选择单个功能,否则您可以循环选择的功能。

关于javascript - 如何在 OpenLayers 5 中删除绘图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54847127/

相关文章:

java - 需要在同一框架/面板中的现有绘图之上添加绘图

node.js - 如何获取目录中文件的总大小?

algorithm - 绘制用户定义的树

python - 改进 wxPython OnPaint

c# - JSON 作为 null 传递给方法参数

node.js - -bash : grunt: command not found

node.js - 类型错误 : Key must be a buffer at new Hmac (crypto. js:91:16)

javascript - 验证整数

javascript - 函数中的 React useState 方法无法按预期工作

javascript - 如何在媒体查询中禁用 JavaScript