Postgresql 使用make_solid()PostGIS从顶点表创建多面体曲面

Postgresql 使用make_solid()PostGIS从顶点表创建多面体曲面,postgresql,3d,geometry,postgis,qgis,Postgresql,3d,Geometry,Postgis,Qgis,我正在尝试使用PostGIS中的()sfcgal函数获取三维多边形 我的桌子看起来像这样: id_geom| xmin | xmax | ymin | ymax | zmin | zmax --------+------+---------+---------+---------+-------+------- 1 | 12.3235 | 12.3239 | 45.4339 | 45.4341 | -7 | -14 2 | 12.3234 | 12.3

我正在尝试使用PostGIS中的()sfcgal函数获取三维多边形

我的桌子看起来像这样:

 id_geom| xmin | xmax    |  ymin   |   ymax  | zmin  | zmax
--------+------+---------+---------+---------+-------+-------
   1 | 12.3235 | 12.3239 | 45.4339 | 45.4341 |    -7 |   -14
   2 | 12.3234 | 12.3238 | 45.4338 | 45.4339 |    -2 |    -7
我想要另一个具有实体几何体的列,但我不知道如何使用存储在表中的顶点坐标而不是原始坐标

我读了这个问题,然后工作:

SELECT ST_MakeSolid('POLYHEDRALSURFACE Z (
((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0)),
((0 0 1,1 0 1,1 1 1,0 1 1,0 0 1)),
((0 0 0,0 0 1,0 1 1,0 1 0,0 0 0)),
((0 1 0,0 1 1,1 1 1,1 1 0,0 1 0)),
((1 1 0,1 1 1,1 0 1,1 0 0,1 1 0)),
((1 0 0,1 0 1,0 0 1,0 0 0,1 0 0)))')
但是我想用“xmin”、“xmax”等来代替12.3235、12.3239等


我该怎么做?

多亏了吉姆·琼斯,我解决了这个问题:

SELECT
ST_MakeSolid('POLYHEDRALSURFACE Z ('
'('||'('||xmin_ ||' '|| ymin_ ||' '||zmin_ ||','|| xmin_ ||' '|| ymax_ ||' '||zmin_ ||','|| xmax_ ||' '|| ymax_ ||' '||zmin_ ||','|| xmax_ ||' '|| ymin_ ||' '||zmin_ ||','|| xmin_ ||' '|| ymin_ ||' '||zmin_||')'||')'||','||
'('||'('||xmin_ ||' '|| ymin_ ||' '||zmax_ ||','|| xmax_ ||' '|| ymin_ ||' '||zmax_ ||','|| xmax_ ||' '|| ymax_ ||' '||zmax_ ||','|| xmin_ ||' '|| ymax_ ||' '||zmax_ ||','|| xmin_ ||' '|| ymin_ ||' '||zmax_||')'||')'||','||
'('||'('||xmin_ ||' '|| ymin_ ||' '||zmin_ ||','|| xmin_ ||' '|| ymin_ ||' '||zmax_ ||','|| xmin_ ||' '|| ymax_ ||' '||zmax_ ||','|| xmin_ ||' '|| ymax_ ||' '||zmin_ ||','|| xmin_ ||' '|| ymin_ ||' '||zmin_||')'||')'||','||    
'('||'('||xmin_ ||' '|| ymax_ ||' '||zmin_ ||','|| xmin_ ||' '|| ymax_ ||' '||zmax_ ||','|| xmax_ ||' '|| ymax_ ||' '||zmax_ ||','|| xmax_ ||' '|| ymax_ ||' '||zmin_ ||','|| xmin_ ||' '|| ymax_ ||' '||zmin_||')'||')'||','||        
'('||'('||xmax_ ||' '|| ymax_ ||' '||zmin_ ||','|| xmax_ ||' '|| ymax_ ||' '||zmax_ ||','|| xmax_ ||' '|| ymin_ ||' '||zmax_ ||','|| xmax_ ||' '|| ymin_ ||' '||zmin_ ||','|| xmax_ ||' '|| ymax_ ||' '||zmin_||')'||')'||','|| 
'('||'('||xmax_ ||' '|| ymin_ ||' '||zmin_ ||','|| xmax_ ||' '|| ymin_ ||' '||zmax_ ||','|| xmin_ ||' '|| ymin_ ||' '||zmax_ ||','|| xmin_ ||' '|| ymin_ ||' '||zmin_ ||','|| xmax_ ||' '|| ymin_ ||' '||zmin_||')'||')'||')'                        
)
FROM mytable

你的意思是你不确定如何用几何字符串连接柱<代码>从mytable中选择ST|u MakeSolid('多面体曲面Z'| | | | | |'''.'多面体曲面b| | |'…')