如何将起点、未定义数量的中点和终点合并在一起?

How to merge a start, undefined number of midpoints, and an endpoint together?

我的目标是将始终存在的起点、来自不同 table(可能是 0-100)的任何现有中点以及始终存在的终点合并在一起。

table 的格式使得 table 具有没有中点的“线”:唯一标识符、起点、终点。 Table 两个具有用于匹配目的的唯一标识符、一个点和一个用于标识顺序的升序索引。

    st_removerepeatedpoints(
        st_snaptogrid(
            st_setsrid(
                st_makeline(
                    st_makepoint(underground."X Coordinate"::double precision, underground."Y Coordinate"::double precision), 
                    st_dump(SELECT st_makepoint(midpoint.x_coordinate::double precision, midpoint.y_coordinate::double precision) AS geom FROM midpoint 
                        WHERE midpoint.element_name::text = underground."Element Name"::text
                        ORDER BY midpoint.indx), 
                    st_makepoint(underground."X2 Coordinate"::double precision, underground."Y2 Coordinate"::double precision)
                )
            , 32038)
        , 0.001::double precision)
    ) AS geom,

我尝试了各种函数,但一直无法将“中点”转换为适用于 stmakeline 的格式。 stdump 似乎是一个可能的解决方案,但我一直无法让它工作,而且我还没有找到有类似问题的用户的任何解决方案。

尝试使用这个:

ST_MakeLine(ARRAY(SELECT geom FROM mid_point)) 

ST_AddPoint()添加起点和终点。