st_collect функция

Область применения:check помечена да Databricks Runtime 18.3 и выше

Important

Эта функция доступна в общедоступной предварительной версии.

Собирает массив GEOGRAPHY или GEOMETRY значения в одну многоточие, многостроческую, многоуровневую или геометрическую коллекцию.

Syntax

st_collect ( geoArray )

Arguments

  • geoArray: массив значений GEOGRAPHY или массив значений GEOMETRY .

Returns

Значение типа GEOGRAPHY или GEOMETRY, представляющее многоточие, многостроческую, многоуровневую или геометрическую коллекцию.

Все NULL значения в входном массиве игнорируются. Тип выходных данных зависит от типов не входныхNULL геометрий:

  • Если все элементы неNULL являются точками, возвращает многоточие.
  • Если все элементы, не являющиесяNULL строками, возвращает многострочный элемент.
  • Если все не являютсяNULL многоугольниками, возвращает многополигон.
  • В противном случае возвращает коллекцию геометрии.

Каждый выход содержит один элемент на элемент, отличныйNULL от массива.

Входные данные с несколькими типами (multipoint, multilinestring, multipolygon) и геометрические входные данные коллекции сохраняются в виде элементов результирующей коллекции геометрии; они не плоские.

Значение SRID выходных данных — это общее значение SRID для неNULL входных геометрий.

Измерение выходных данных является максимальным общим измерениемNULL не входных геометрий.

Если входной массив пуст или содержит только NULL значения, возвращается 2D пустая коллекция геометрии. В этом случае SRID выходных данных определяется следующим образом:

  • Если тип элемента входного массива имеет значение GEOGRAPHY(ANY), SRID выходных данных имеет значение 4326.
  • Если тип элемента входного массива имеет значение GEOMETRY(ANY), SRID выходных данных имеет значение 0.
  • В противном случае SRID выходных данных — это тип элемента входного массива.

Функция возвращается NULL , если входные данные являются NULL.

Условия ошибок

  • Если двеNULL не входные геометрии имеют разные значения SRID, функция возвращает ST_DIFFERENT_SRID_VALUES.

Примеры

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