此功能与OpenLayers 3相同

时间:2016-02-11 16:01:19

标签: javascript gis openlayers-3

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

OpenLayers 2示例:

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

1 个答案:

答案 0 :(得分:2)

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();
});

使用Draw条件也是可能的,这就是@ robert-smith在这里真正想要的:

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