我有一个绘图工具,该工具使用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
});
或者有没有办法在初始化后设置可变形特征?
答案 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')
});