PostGIS查找已连接的线串

问题描述 投票:0回答:1

嗨,我正在尝试获取所有靠近其他线串节点的线串

我尝试过:

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,但是我不知道如何增加一些公差。也许有一种方法可以在线串节点上建立缓冲区?

sql postgresql postgis
1个回答
0
投票

您需要使用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:关于*,两条线仍然可以在两个顶点之间相互触摸。

© www.soinside.com 2019 - 2024. All rights reserved.