postgresql 按折点而不是相交点分割几何图形/线串

omqzjyyz  于 2022-12-26  发布在  PostgreSQL
关注(0)|答案(1)|浏览(154)

我想通过顶点切割线。它不像我希望的那样工作,因为有交叉的线。当前的查询,我分割线的顶点,也尽快线相交。我只希望它在顶点切割,而不是在线交叉点。谢谢你

这里是SQL

WITH gpx_line AS (
SELECT uuid, ST_AsText(ST_MakeLine(lag((pt).geom, 1, NULL) OVER (PARTITION BY uuid ORDER by uuid, (pt).path), (pt).geom)) AS wkb_geometry
  FROM (SELECT uuid, ST_DumpPoints(wkb_geometry) AS pt FROM public.points_gpx_to_line) as dumps
)
SELECT * FROM gpx_line WHERE wkb_geometry IS NOT NULL;
u4dcyp6a

u4dcyp6a1#

没有示例数据和预期结果,很难确切知道您要实现什么,但我相信您所描述的可以通过ST_DumpSegments实现:
一种提取几何图形坐标(顶点)的返回集合函数(SRF)。它返回一组geometry_dump行,每行包含一个几何图形(geom字段)和一个整数数组(path字段)。

SELECT 
  ST_AsText(
   (ST_DumpSegments('LINESTRING(1 1,2 2,3 3,4 4)'::geometry)).geom);
      st_astext      
---------------------
 LINESTRING(1 1,2 2)
 LINESTRING(2 2,3 3)
 LINESTRING(3 3,4 4)
(3 rows)

相关问题