我设法建立了修改互动。
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)的实例不同。
我需要在修改功能时更新数据库中的坐标。
如何设置监听器?
答案 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'}})
你必须使用'一次'而不是'避免多次检查并使用布尔变量来检查功能是否已更改。
希望这个帮助