openlayers ol-ext如何在变换时排除特征

时间:2018-07-20 21:32:24

标签: openlayers

我有一个绘图工具,该工具使用ol-ext中的Transform交互。有没有办法从转换中排除某些形状?例如,我想排除转换LineString。

    transformInteraction = new interaction.Transform({
        features: this.props.drawnShapes, // null at initialization
        layers: map.getLayers().getArray().filter(l => l.get("transformable")),
        hitTolerance: 5,
        translateFeature: true,
        translate: true,
        keepAspectRatio: events.condition.shiftKeyOnly,
        rotate: true
    });

或者有没有办法在初始化后设置可变形特征?

1 个答案:

答案 0 :(得分:1)

您只需要在filter对象构造函数中使用ol.interaction.Transform键。 http://viglino.github.io/ol-ext/examples/interaction/map.interaction.transform.html的源代码摘录向您展示了如何使用它来限制作业以排除行。

var interaction = new ol.interaction.Transform (
{ addCondition: ol.events.condition.shiftKeyOnly,
  // filter: function(f,l) { return f.getGeometry().getType()==='Polygon'; },
  // layers: [vector],
  hitTolerance: 2,
  translateFeature: $("#translateFeature").prop('checked'),
  scale: $("#scale").prop('checked'),
  rotate: $("#rotate").prop('checked'),
  keepAspectRatio: $("#keepAspectRatio").prop('checked') ? ol.events.condition.always : undefined,
  translate: $("#translate").prop('checked'),
  stretch: $("#stretch").prop('checked')
});