st_collect Função

Aplica-se a:check marked yes Databricks Runtime 18.3 e superior

Importante

Esse recurso está em Visualização Pública.

Coleta uma matriz ou GEOGRAPHYGEOMETRY valores em uma única coleção multiponto, multilinha, multipolígono ou geometria.

Syntax

st_collect ( geoArray )

Arguments

  • geoArray: uma matriz de GEOGRAPHY valores ou uma matriz de GEOMETRY valores.

Returns

Um valor de tipo GEOGRAPHY ou GEOMETRY, representando uma coleção multipoint, multilinestring, multipolygon ou geometry.

Todos NULL os valores na matriz de entrada são ignorados. O tipo da saída depende dos tipos das geometrias que não são deNULL entrada:

  • Se todos os nãoNULL elementos forem pontos, retornará um multiponto.
  • Se todos os nãoNULL elementos forem linestrings, retornará uma multilinha.
  • Se todos os nãoNULL elementos forem polígonos, retornará um multipolígono.
  • Caso contrário, retorna uma coleção de geometria.

Cada saída contém um elemento por elemento não matrizNULL .

Entradas de vários tipos (multipoint, multilinestring, multipolygon) e entradas da coleção geometry são preservadas como elementos da coleção de geometria resultante; eles não são achatados.

O valor SRID da saída é o valor SRID comum das geometrias não deNULL entrada.

A dimensão da saída é a dimensão máxima comum das geometrias que não são deNULL entrada.

Se a matriz de entrada estiver vazia ou contiver apenas NULL valores, a coleção de geometria vazia 2D será retornada. Nesse caso, o SRID da saída é determinado da seguinte maneira:

  • Se o tipo de elemento da matriz de entrada for GEOGRAPHY(ANY), o SRID da saída será 4326.
  • Se o tipo de elemento da matriz de entrada for GEOMETRY(ANY), o SRID da saída será 0.
  • Caso contrário, o SRID da saída é o tipo de elemento da matriz de entrada.

A função retorna NULL se a entrada for NULL.

Condições de erro

  • Se duas geometrias não deNULL entrada tiverem valores SRID diferentes, a função retornará ST_DIFFERENT_SRID_VALUES.

Exemplos

-- Collects an array of points into a multipoint.
> SELECT st_astext(st_collect(array(st_geomfromtext('POINT(1 2)'),st_geomfromtext('POINT(3 4)'))));
  MULTIPOINT((1 2),(3 4))
-- Collects an array of polygons into a multipolygon.
> SELECT st_astext(st_collect(array(st_geomfromtext('POLYGON((0 0,10 0,10 10,0 10,0 0))'))));
  MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0)))
-- Collects an array of mixed geometry kinds into a geometry collection.
> SELECT st_astext(st_collect(array(st_geomfromtext('POLYGON((0 0,10 0,10 10,0 10,0 0))'),st_geomfromtext('LINESTRING(1 2,3 4)'))));
  GEOMETRYCOLLECTION(POLYGON((0 0,10 0,10 10,0 10,0 0)),LINESTRING(1 2,3 4))
-- Returns the 2D empty geometry collection for an empty input array.
> SELECT st_astext(st_collect(array()));
  GEOMETRYCOLLECTION EMPTY
-- Returns NULL for a NULL input.
> SELECT st_collect(NULL);
  NULL