绘制交互。如何防止在单击顶点时删除它们

Draw interaction. How to prevent removing of vertices on clicking on them

OpenLayers 3 中有一个功能,当您绘制某个对象并单击某个几何体的顶点时,该顶点就会消失。因此,例如,一条具有三个顶点的线可能会变成一条具有两个顶点的线。我的一位用户称此功能为核武器,因为它可能会使与地图的整个交互变得一团糟 - 例如,您正在绘制一些靠近另一个的功能并无意中单击一个顶点。在这种情况下,整个特征都被破坏了。那么,我们如何才能防止这种行为呢?

通过单击从矢量要素中移除顶点是来自 ol.interaction.Modify 的正常行为。它的默认条件是:单击它时。在这里查看:in the modify.js source code.

另见 documentation of the modify interaction。请参阅 deleteCondition。那将是您的第一个可能的解决方案。您可以设置一个条件,以便触发此功能需要的不仅仅是简单的单击。这将解决您的问题。

你说这发生在绘图时。绘图时 不要激活修改交互也是一个好主意。这对你来说是第二个好的解决方案。我个人也强烈建议采用这种方法。在地图中,一次应该始终只有一个工具处于活动状态。绘图和修改功能不应同时处于活动状态。