打开图层3:如何为修改交互创建侦听器

时间:2014-07-13 20:18:35

标签: openlayers-3

我设法建立了修改互动。

ol.interaction.Modify(http://ol3js.org/en/master/apidoc/ol.interaction.Modify.html)的文档不包含修改要素时触发的单个事件。

与ol.interaction.Draw(http://ol3js.org/en/master/apidoc/ol.interaction.Draw.html)的实例不同。

我需要在修改功能时更新数据库中的坐标。

如何设置监听器?

2 个答案:

答案 0 :(得分:7)

我找到了解决方案。

高级解释在这里:http://boundlessgeo.com/2014/06/openlayers-editing-wfs-t/

基本上你不会听修改 - 交互中的变化(就像你在绘图交互中那样)。相反,您可以自行监听所选功能的更改。

这是一个简短的摘录:

// get the features from the select interaction
var selected_features = select_interaction.getFeatures();
// when a feature is selected...
selected_features.on('add', function(event) {
    // get the feature
    var feature = event.element;
    // ...listen for changes on it
    feature.on('change', function(event) {
        // got it!
    });
});

以下是一个完整的工作示例:http://codepen.io/barbalex/pen/fBpyb

答案 1 :(得分:2)

为此,你必须使用如下:

feature.once('change', function(bool) {if (bool) {document.getElementById('my_input_text').value='feature changed'}})

你必须使用'一次'而不是'避免多次检查并使用布尔变量来检查功能是否已更改。

希望这个帮助