使用 PostGIS 从 table 将点转换为多边形,一个属性具有多个点

Convert Points to Polygon using PostGIS from a table with multiple points for one attribute

我想使用 PostGIS 创建多边形 table。每行 intest_table 都有点 x 和 y。 Table 'test_table' 有作为列原点的点的位置信息。

    I tried this 
        SELECT   ST_MakePolygon(ST_MakeLine (432099.197021 , 6736122.29126 , 432099.197021 , 6747306.948242 , 427835.719238 , 6747306.948242 , 427835.719238 , 6736122.29126, 23031));
        FROM   test_table
        where origin = '126af84e-0a9b-407d-8036-1ffc316106dd'

XMAX,YMIN 
XMAX,YMAX 
XMIN,YMAX 
XMIN,YMIN 

运气不好我想知道是否有人可以向我解释得更好 是否可以向几何体添加边界框?为我所有的属性加分

您可以从点数组或 WKT 表示法制作一条线,如果您想将其转换为多边形,则该线的最后一个点应与第一个点相同(以便多边形闭合).如果我理解正确的话,您想为共享 origin 值的点云构建边界框。可以这样做:

with 
bounds as (
    select
     origin
    ,min(x) as xmin
    ,min(y) as ymin
    ,max(x) as xmax
    ,max(y) as ymax
    from test_table
    group by 1
)
select 
 origin
,st_makepolygon(st_makeline(array[
     st_makepoint(xmin,ymin)
    ,st_makepoint(xmax,ymin)
    ,st_makepoint(xmax,ymax)
    ,st_makepoint(xmin,ymax)
    ,st_makepoint(xmin,ymin)
]))
from bounds