Funzione st_collect

Si applica a:check contrassegnato come sì Databricks Runtime 18.3 e versioni successive

Importante

Questa funzionalità è in Anteprima Pubblica.

Raccoglie una matrice di GEOGRAPHY valori o GEOMETRY in un singolo insieme multipunto, multilinestring, multipolygon o geometry.

Syntax

st_collect ( geoArray )

Arguments

  • geoArray: matrice di GEOGRAPHY valori o matrice di GEOMETRY valori.

Returns

Valore di tipo GEOGRAPHY o GEOMETRY, che rappresenta un insieme multipunto, multilinestring, multipolygon o geometry.

Tutti i NULL valori nella matrice di input vengono ignorati. Il tipo di output dipende dai tipi delleNULL geometrie non di input:

  • Se tutti gli elementi nonNULL sono punti, restituisce un multipunto.
  • Se tutti gli elementi nonNULL sono linestring, restituisce una stringa multilinea.
  • Se tutti gli elementi nonNULL sono poligoni, restituisce un multipolygon.
  • In caso contrario, restituisce un insieme geometry.

Ogni output contiene un elemento per ogni elemento nonNULL di matrice.

Gli input multitipo (multipoint, multilinestring, multipolygon) e gli input della raccolta geometry vengono mantenuti come elementi della raccolta geometry risultante; non sono appiattiti.

Il valore SRID dell'output è il valore SRID comune delleNULL geometrie non di input.

La dimensione dell'output è la dimensione massima comune delle geometrie nonNULL di input.

Se la matrice di input è vuota o contiene solo NULL valori, viene restituita la raccolta geometry vuota 2D. In questo caso, l'identificatore SRID dell'output viene determinato nel modo seguente:

  • Se il tipo di elemento della matrice di input è GEOGRAPHY(ANY), l'identificatore SRID dell'output è 4326.
  • Se il tipo di elemento della matrice di input è GEOMETRY(ANY), l'identificatore SRID dell'output è 0.
  • In caso contrario, lo SRID dell'output è quello del tipo di elemento della matrice di input.

La funzione restituisce NULL se l'input è NULL.

Condizioni di errore

Examples

-- 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