检查坐标是否在 OL 中的特征边界上
Check if coordinates are on the boundary of a feature in OL
我正在使用 OpenLayers 5 https://openlayers.org/,但找不到如何检查给定坐标是否在要素边界上的解决方案。
我玩过 map.getFeaturesAtPixel
和 geometry.intersectsCoordinate
,但总是存在一个问题,即如果坐标在特征中,函数也会 return 为真。如果坐标位于特征的边界上,我只希望结果为真。
背景:用户可以在地图上画线并将它们与其他特征连接起来(因此我使用ol.interaction.Snap
)。保存时我想拥有用户 'snapped' 的功能。我找不到一个事件或其他东西告诉我哪些功能被捕捉了。因此,我试图找到一种解决方案来自行提取连接到新线路的功能,但没有任何效果。
希望图片能看清楚。用户绘制新线(蓝色),线捕捉到两个多边形。划完线,我要看两个特征
欢迎任何帮助!
在没有任何更明显的内置方法检查几何上的最近点是否与坐标相同的情况下,这应该可行:
var closest = geometry.getClosestPoint(coordinate);
if (closest[0] == coordinate[0] && closest[1] == coordinate[1]) {
...
}
我正在使用 OpenLayers 5 https://openlayers.org/,但找不到如何检查给定坐标是否在要素边界上的解决方案。
我玩过 map.getFeaturesAtPixel
和 geometry.intersectsCoordinate
,但总是存在一个问题,即如果坐标在特征中,函数也会 return 为真。如果坐标位于特征的边界上,我只希望结果为真。
背景:用户可以在地图上画线并将它们与其他特征连接起来(因此我使用ol.interaction.Snap
)。保存时我想拥有用户 'snapped' 的功能。我找不到一个事件或其他东西告诉我哪些功能被捕捉了。因此,我试图找到一种解决方案来自行提取连接到新线路的功能,但没有任何效果。
希望图片能看清楚。用户绘制新线(蓝色),线捕捉到两个多边形。划完线,我要看两个特征
欢迎任何帮助!
在没有任何更明显的内置方法检查几何上的最近点是否与坐标相同的情况下,这应该可行:
var closest = geometry.getClosestPoint(coordinate);
if (closest[0] == coordinate[0] && closest[1] == coordinate[1]) {
...
}