如何将起点、未定义数量的中点和终点合并在一起?
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()添加起点和终点。
我的目标是将始终存在的起点、来自不同 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()添加起点和终点。