Openlayers绘制poylgon删除双击选项

时间:2018-04-06 14:00:39

标签: reactjs openlayers

我正在使用Openlayers 4构建UI。我收到的请求是不允许用户双击以完成当前的.Draw交互。我已使用LineString选项在maxPoints上管理此内容,并且仅允许用户绘制直线(根据我的要求)。

我需要对Polygon做同样的事情,但无法让它发挥作用。我尝试过使用finishCondition,但这没有帮助。

这是否可以在Openlayers中完成?

JS Fiddle在我的机器上发出大量错误,我会尽快添加一个例子。

修改

这是一个基本的jsfiddle。您可以从finishCondition切换返回布尔值,当设置为true时,单击和双击结束多边形绘图。设置为false时,绘图无法结束。

如果用户双击,我需要找到允许我返回false的编码,否则返回true。

2 个答案:

答案 0 :(得分:1)

好吧,经过进一步的研究,我找到了解决方法,如jsfiddle所示。

我使用on drawstart事件来计算和设置多边形中第一个点的坐标,在finishCondition中,我找到了它所在的当前像素,然后使用看看它是否在点击点的10px以内,如果它不在多边形的末端,则继续绘制。

如果有人可以向我展示一种更优雅的方式来实现此目标,我感到很高兴,但是现在看来,这很有效。

答案 1 :(得分:0)

也请看一下,您可以返回交互的终点坐标

finishCondition: event => {
    return this.interaction.finishCoordinate_ === this.interaction.sketchCoords_[0][0];
};