【发布时间】:2020-05-19 09:37:26
【问题描述】:
我正在尝试使用 PostGIS 中的 ST_MakeSolid() sfcgal 函数获取 3D 多边形。
我的桌子是这样的:
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
我想要另一列包含实体的几何形状,但我不知道如何使用存储在表格中的顶点坐标而不是原始坐标。
我阅读了"ST_MakeSolid() creating an invalid solid from closed polyhedralsurfaceZ" 的问题,并且有效:
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 (' || a_column || ' ' || b_column || ' ...') FROM mytable
标签: postgresql 3d geometry postgis qgis