javascript - beforefeatureadded 事件等效于 OpenLayers 3

标签 javascript gis openlayers-3

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

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

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

关于javascript - beforefeatureadded 事件等效于 OpenLayers 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35344121/

相关文章:

openlayers-3 - Openlayers 3 读取扩展 GPX

javascript - 在 typescript/angular2 中使用 openlayer3

Javascript 精度递增/递减数

javascript - Jquery 插件绑定(bind)更改事件

mobile - GIS应用程序的最佳开发平台是什么?

android - 无法解析常用打开文件 gradle.build

javascript - "arrow"图像仅在 OpenLayers 3 的 map 中显示一半

javascript - 与正则表达式匹配

javascript - 在返回结果之前,如何在 Promise.done 中等待 jQuery.ajaxComplete?

r - 如何在R基地绘制中国 map 与南海