我正在使用Openlayers 4构建UI。我收到的请求是不允许用户双击以完成当前的.Draw
交互。我通过使用LineString
选项在maxPoints
上管理这个,并且只允许用户绘制直线(根据我的要求)。
我需要用Polygon
做同样的事情,但不能让它工作。我尝试过使用finishCondition
,但这没有用。
这是可以在Openlayers中完成的吗?
JS Fiddle在我的机器上抛出大量错误,我会尽快添加一个例子。
编辑
这是一个基本的jsfiddle。您可以从finishCondition
切换返回布尔值,当设置为true时,单击和双击结束多边形绘图。设置为false时,绘图无法结束。
如果用户双击,我需要找到允许我返回false
的条件,否则返回true。
好的,经过一些进一步的调查后,我找到了一个解决方案,如jsfiddle所示。
我已经使用on
drawstart
事件来计算和设置多边形中第一个点的坐标,在finishCondition
中我找到它所在的当前像素,然后用它来查看它是否在点击点的10px范围内,如果它如果没有结束多边形然后继续绘图。
我很高兴,如果那里的任何人都可以向我展示一种更优雅的方式来做到这一点,但是现在这似乎可以解决问题。