我设法设置了修改交互。
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 ),它工作得很好。
修改功能后,我需要更新数据库中的坐标。
如何设置监听器?
我设法设置了修改交互。
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 ),它工作得很好。
修改功能后,我需要更新数据库中的坐标。
如何设置监听器?
我找到了解决方案。
高级解释在这里: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
为此,您必须使用如下:
feature.once('change', function(bool) {if (bool) {document.getElementById('my_input_text').value='feature changed'}})
您必须使用 'once' 而不是 'on' 以避免多次检查,并使用布尔变量来检查功能是否已更改。
希望这有帮助