对于openlayers 2,您有一个名为beforefeatureadded的事件,您可以在实际添加新功能之前进行验证。什么是OpenLayers 3的beforefeatureadded事件的等价物?
OpenLayers 2示例:
layer.events.register("beforefeatureadded", layer, validationFunction);
答案 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);
}
});