Retorna um conjunto de registros geometry_dump de um objeto de geometria e expande coleções em seus componentes individuais.
Sintaxe
geometry_dump[] ST_Dump(geometry g1);
Parâmetros
|
Parâmetro |
Descrição |
|
|
Objeto de geometria a ser especificado. |
Descrição
A função ST_Dump extrai os componentes de um objeto de geometria. Cada registro geometry_dump retornado contém dois campos:
geom: objeto de geometria do componente.path: array de inteiros que indica a posição do componente na geometria original.
O comportamento varia conforme o tipo de entrada:
Entrada de ponto, LineString ou polígono: retorna um único registro com um array
pathvazio e a geometria de entrada comogeom.Entrada de multigeometria ou coleção: gera um registro por componente, com um array
pathque indica a posição de cada elemento na coleção.
A função ST_Dump é o inverso de GROUP BY. Enquanto GROUP BY agrega linhas em uma única geometria, ST_Dump expande uma única geometria em várias linhas. Um caso de uso comum é a expansão de um MultiPolygon em polígonos individuais.
Esta função oferece suporte aos seguintes tipos de geometria: Circular String, curva, Polyhedral Surface, Triangle, superfícies de rede irregular triangulada (TIN) e objetos 3D.
Exemplos
O exemplo a seguir expande uma MULTILINESTRING em suas geometrias LINESTRING componentes. A coluna path exibe a posição de cada componente.
SELECT (t.dump).path, ST_AsText((t.dump).geom)
FROM (
SELECT ST_Dump('MULTILINESTRING((0 0,0 2),(0 1,0 3))'::geometry) AS dump
) AS t;
Saída:
path | st_astext
------+---------------------
{1} | LINESTRING(0 0,0 2)
{2} | LINESTRING(0 1,0 3)
(2 rows)