Postgis- 'geometry_dump'데이터 유형을 'geometry'유형으로 변환


18

ST_Union ()을 실행 한 속성 경계의 데이터 세트로 작업 중이므로 모든 다각형이 테이블의 한 행에 다중 다각형으로 나타납니다. 각 모양에 대해 별도의 행 / 다각형을 얻도록 이것을 분리하고 싶습니다. ST_Dump ()를 실행하려고 시도했지만 데이터 세트에서 다각형을 분리하는 것처럼 보이지만 더 이상 GIS에서 볼 수 없습니다 (현재 QGIS를 사용하고 있습니다). 이 열의 데이터 유형에 'geometry_dump'라고 표시되어 시각화 할 수없는 이유라고 생각합니다. QGIS에서 Postgres 데이터베이스에 액세스하면이 새 테이블이 지오메트리없이 데이터 세트 제목 아래에 나열됩니다.

'geometry_dump'를 'geometry'로 변환하기 위해 내가 할 수있는 일이 있는지 아는 사람이 있습니까?

답변:


30

geometry_dump데이터 타입은 간단 복합 형 두 개의 필드 :

  1. path[] — 덤프 된 객체 내에서 지오메트리의 위치를 ​​유지하는 1 차원 배열
  2. geom — 원본의 간단한 지오메트리 하위 집합으로 원하는 것입니다.

에 액세스하려면 geom사용하십시오 (ST_Dump(the_geom)).geom(추가 괄호가 필요하며 복합 유형의 멤버에 액세스 할 때 약간의 어려움이 있습니다). 예를 들면 다음과 같습니다.

WITH data AS (SELECT 'MULTIPOLYGON (((170 190, 110 150, 200 120, 170 190)), 
  ((220 160, 230 110, 280 120, 220 160)), 
  ((220 200, 260 240, 270 190, 220 200)))'::geometry AS the_geom)

SELECT ST_AsText( (ST_Dump(the_geom)).geom )
FROM data;
                 st_astext
--------------------------------------------
 POLYGON((170 190,110 150,200 120,170 190))
 POLYGON((220 160,230 110,280 120,220 160))
 POLYGON((220 200,260 240,270 190,220 200))
(3 rows)

PostGIS와 설명서는 ST_Dump에 대한 다른 좋은 예제를 가지고있다.


고마워, 이것은 내가 필요한 것입니다. ".geom"과 같은 SQL 구문을 사용한 적이 없습니다. 건배.
로마 Trubka 1

추가 대괄호가 중요하므로 올바른 : "SELECT (ST_Dump (geom)). geom FROM 테이블"잘못된 : "SELECT ST_Dump (geom) .geom FROM 테이블"
HeikkiVesanto
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.