检查坐标是否在OL中的要素边界上

时间:2019-11-07 14:45:12

标签: openlayers openlayers-5

我正在使用OpenLayers 5 https://openlayers.org/,找不到解决方案,该如何检查给定坐标是否在要素边界上。

我使用map.getFeaturesAtPixelgeometry.intersectsCoordinate进行游戏,但是始终存在以下问题:如果坐标位于要素中,则函数也返回true。如果坐标在要素边界上,我只希望结果为真。

背景:用户可以在地图上画线并将其与其他要素连接(因此我使用ol.interaction.Snap)。保存时,我想拥有被用户“快照”的功能。我找不到事件或其他可以告诉我哪些功能已被捕捉的事件。因此,我试图找到一种解决方案,以自我提取连接到新生产线的功能,但是没有任何效果。

我希望这张图片能清楚地说明。用户绘制新线(蓝色),该线捕捉到两个多边形中。画完线后,我想阅读两个功能。

欢迎任何帮助!

enter image description here

1 个答案:

答案 0 :(得分:2)

在没有更明显的内置方法的情况下,检查几何上最接近的点是否与坐标相同

var closest = geometry.getClosestPoint(coordinate);
if (closest[0] == coordinate[0] && closest[1] == coordinate[1]) {
   ...
}