拖拽条件绘制——Openlayers

3

我目前正在开发一个Web应用程序,允许最终用户绘制不同的形状。我已经设置了绘制对象,并设定了一个条件来检查各种情况。这包括检查与其他几何对象的交点。

我的问题是,该条件总是被调用,并且仅返回“pointerdown”事件。基本上,如果用户单击并按住鼠标(拖动),这会导致由于“clickTolerance”,段没有被添加到绘图中:

https://openlayers.org/en/latest/apidoc/module-ol_interaction_Draw-Draw.html

这很好,我不想改变这个。用户应该在绘图时能够拖动地图。但问题是,即使该段不被添加到绘图中,该条件仍然总是被调用。

是否有任何方法可以避免这种情况?

1个回答

2

感谢您的努力,但问题不在绘制函数本身,而是传递给从OL创建的Draw对象的条件属性的事件。由于它只发送mousedown事件,因此无法知道是否应处理条件,如果用户正在拖动地图,则需要将一些代码移出属性函数。 - Koronag
1
@Koronag 抱歉我无法提供帮助。我对openlayers并不是专家。您能详细说明一下您的使用场景吗?关于处理用户是否在拖动地图的问题,演示如何通过允许用户通过select元素选择不同的“工具”来处理它。如果选择“none”,则可以拖动地图。也许这样的方法可行,因为库事件似乎存在限制,而您希望访问的内容与此不同? - c0de
谢谢你的帮助。我无法解决它,但我找到了下一个最好的方法。我一直在局限于条件属性函数的范围内思考(笑),我将一些代码移到外面,并单独设置了指针抬起的监听器。计算像素距离,然后继续处理需要处理的条件。虽然不是100%,但它可以工作,并且我可以直观地表示我所需的内容。再次感谢。 - Koronag

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接