嗨,我正在尝试获取所有靠近其他线串节点的线串
我尝试过:
SELECT *
FROM lines p
JOIN lines ps ON( ST_Buffer(p.geom, 0.01) && ps.geom
AND ST_Intersects(st_buffet(p.geom, 0.01), ps.geom))
但是我也得到了相交的线。
有功能ST_Touches,但是我不知道如何增加一些公差。也许有一种方法可以在线串节点上建立缓冲区?
您需要使用st_dumpPoints
提取节点,然后才能将线连接到这些点。最好使用st_dumpPoints
而不是不精确的缓冲区。
查询将类似于
st_dwithin
[您可能想选择SELECT *
FROM lines p
JOIN
(SELECT *, (ST_DumpPoints(geom)).geom
FROM lines ps) as pts
ON st_dwithin(p.geom, ps.geom, 0.1);
以外的其他内容,因为每行将获得3个几何图形(第一行,第二行,接触点)
PS:关于*
,两条线仍然可以在两个顶点之间相互触摸。