检测在OpenLayers 3中点击多边形的顶点或边缘?

时间:2018-03-29 17:15:17

标签: javascript openlayers openlayers-3

是否可以区分OpenLayers 3中边缘,顶点和多边形内部的点击?我很高兴转到OpenLayers 4,如果这更容易。

或者我最好将多边形绘制为一系列在每个顶点都有小标记多边形的线条,然后检测每个顶点的点击次数?

2 个答案:

答案 0 :(得分:1)

选中此课程ol.interaction.Snap,它会提供一些选项来捕捉要素的顶点和/或边缘。如果将它与change事件一起使用,则可以区分它是否在顶点或边缘上单击。如果不是,请检查点击是在多边形内还是在外面(intersectsCoordinate)。

答案 1 :(得分:0)

据我所知,OL中不存在此功能。您只能获得特定位置的图层或要素,但不能该要素的部分

实现这样的功能可能需要做很多工作。如果您尝试使用它,可能需要使用一些额外的库,例如JSTS和几何的getClosestPoint

但是,我认为您自己建议的解决方案是将对象拆分为多个要素并使用forEachFeatureAtPixel选择最匹配的(例如边缘>顶点>内部)的最简单的解决方案。