openlayers draw poylgon去掉双击选项
Openlayers draw poylgon remove double click option
我正在使用 Openlayers 4 构建一个 UI。我收到的请求是不允许用户双击以完成当前的 .Draw
交互。我通过使用 maxPoints
选项在 LineString
上进行了管理,并且只允许用户绘制直线(根据我的要求)。
我需要对 Polygon
做同样的事情,但无法让它工作。我试过使用 finishCondition
但这没有用。
这可以在 Openlayers 中完成吗?
JS Fiddle 目前正在我的机器上抛出大量错误,我会尽快添加一个示例。
编辑
这是一个基本的jsfiddle。您可以从 finishCondition
切换 return 布尔值,当设置为 true 时,单击和双击结束多边形绘制。当设置为 false 时绘图无法结束。
我需要找到允许我在用户双击时 return false
的代码,否则为 true。
好的,经过进一步调查,我找到了解决方案,如 jsfiddle 所示。
我已经使用 on
drawstart
事件来计算和设置多边形中第一个点的坐标,在 finishCondition
我找到它所在的当前像素,然后使用它来查看它是否在单击点的 10px 以内,如果它是多边形的末端,如果不是则继续绘制。
如果有人能告诉我更优雅的方法来做到这一点,我很高兴,但现在这似乎可以解决问题。
也看了一下,你可以return是否是交互的结束坐标
finishCondition: event => {
return this.interaction.finishCoordinate_ === this.interaction.sketchCoords_[0][0];
};
我正在使用 Openlayers 4 构建一个 UI。我收到的请求是不允许用户双击以完成当前的 .Draw
交互。我通过使用 maxPoints
选项在 LineString
上进行了管理,并且只允许用户绘制直线(根据我的要求)。
我需要对 Polygon
做同样的事情,但无法让它工作。我试过使用 finishCondition
但这没有用。
这可以在 Openlayers 中完成吗?
JS Fiddle 目前正在我的机器上抛出大量错误,我会尽快添加一个示例。
编辑
这是一个基本的jsfiddle。您可以从 finishCondition
切换 return 布尔值,当设置为 true 时,单击和双击结束多边形绘制。当设置为 false 时绘图无法结束。
我需要找到允许我在用户双击时 return false
的代码,否则为 true。
好的,经过进一步调查,我找到了解决方案,如 jsfiddle 所示。
我已经使用 on
drawstart
事件来计算和设置多边形中第一个点的坐标,在 finishCondition
我找到它所在的当前像素,然后使用它来查看它是否在单击点的 10px 以内,如果它是多边形的末端,如果不是则继续绘制。
如果有人能告诉我更优雅的方法来做到这一点,我很高兴,但现在这似乎可以解决问题。
也看了一下,你可以return是否是交互的结束坐标
finishCondition: event => {
return this.interaction.finishCoordinate_ === this.interaction.sketchCoords_[0][0];
};