Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript BeforeFeature为OpenLayers 3添加了等效事件_Javascript_Gis_Openlayers 3 - Fatal编程技术网

Javascript BeforeFeature为OpenLayers 3添加了等效事件

Javascript BeforeFeature为OpenLayers 3添加了等效事件,javascript,gis,openlayers-3,Javascript,Gis,Openlayers 3,对于openlayers 2,添加了一个名为beforefeatureadded的事件,可以在实际添加新功能之前进行验证。OpenLayers 3的beforefeatureadded事件的等价物是什么 OpenLayers 2示例: layer.events.register("beforefeatureadded", layer, validationFunction); 与OpenLayers 2beforefeatureadded事件等效的是对绘制的特征使用暂存集合: var sour

对于openlayers 2,添加了一个名为beforefeatureadded的事件,可以在实际添加新功能之前进行验证。OpenLayers 3的beforefeatureadded事件的等价物是什么

OpenLayers 2示例:

layer.events.register("beforefeatureadded", layer, validationFunction);

与OpenLayers 2
beforefeatureadded
事件等效的是对绘制的特征使用暂存集合:

var source = new ol.source.Vector();
var features = new ol.Collection();
features.on('add', function(evt) {
  var feature = evt.element;
  if (conditionMet(feature)) {
    source.addFeature(evt.element);
  }
  // clear the staging collection
  features.pop();
});
也可以使用抽签条件,这就是@robert smith在这里实际想要的:

var draw = new ol.interaction.Draw({
  condition: function(evt) {
    return ol.events.condition.noModifierKeys(evt) && conditionMet(evt);
  }
});

这里没有等价物,但您可能会展示一些您试图实现的内容的更多上下文。看看@Robert Smith将此添加到OpenLayers()中的尝试,我终于理解了这个问题。这不是一个真正的beforefeatureadded事件。见下面的答案。