문제 설명
make_solid() PostGIS를 사용하여 꼭짓점 테이블에서 polyhedralsurfaceZ 생성 (Create polyhedralsurfaceZ from vertex table with make_solid() PostGIS)
ST_MakeSolid
() 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
솔리드의 기하 도형이 있는 다른 열을 원하지만 사용 방법을 알 수 없습니다. 원시 좌표 대신 내 테이블에 저장된 정점 좌표.
질문 "ST_MakeSolid() 닫힌 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 등.
이 작업을 수행하려면 어떻게 해야 하나요?
참조 솔루션
방법 1:
Thanks to Jim Jones i solved the issue:
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
(by user2295796、user2295796)