我正在使用OpenLayers 5 https://openlayers.org/,找不到解决方案,该如何检查给定坐标是否在要素边界上。
我使用map.getFeaturesAtPixel
和geometry.intersectsCoordinate
进行游戏,但是始终存在以下问题:如果坐标位于要素中,则函数也返回true。如果坐标在要素边界上,我只希望结果为真。
背景:用户可以在地图上画线并将其与其他要素连接(因此我使用ol.interaction.Snap
)。保存时,我想拥有被用户“快照”的功能。我找不到事件或其他可以告诉我哪些功能已被捕捉的事件。因此,我试图找到一种解决方案,以自我提取连接到新生产线的功能,但是没有任何效果。
我希望这张图片能清楚地说明。用户绘制新线(蓝色),该线捕捉到两个多边形中。画完线后,我想阅读两个功能。
欢迎任何帮助!
答案 0 :(得分:2)
在没有更明显的内置方法的情况下,检查几何上最接近的点是否与坐标相同
var closest = geometry.getClosestPoint(coordinate);
if (closest[0] == coordinate[0] && closest[1] == coordinate[1]) {
...
}