使用 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
我想使用 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