5

我设法设置了修改交互。

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 ),它工作得很好。

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

如何设置监听器?

4

2 回答 2

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

于 2014-07-18T23:26:18.953 回答
2

为此,您必须使用如下:

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

您必须使用 'once' 而不是 'on' 以避免多次检查,并使用布尔变量来检查功能是否已更改。

希望这有帮助

于 2014-10-17T21:58:50.337 回答