st_makeenvelope Função

Aplica-se a:sim, Databricks Runtime 18.2 e superiores

Importante

Este recurso está no Public Preview.

Devolve um GEOMETRY valor que representa o envelope 2D alinhado ao eixo (caixa delimitadora mínima) definido pelas duas coordenadas (x1, y1) dos cantos e (x2, y2).

Syntax

st_makeenvelope ( x1, y1, x2, y2 )

Arguments

  • x1: Um DOUBLE valor que representa a coordenada X do primeiro canto.
  • y1: Um DOUBLE valor, representando a coordenada Y do primeiro canto.
  • x2: Um DOUBLE valor, representando a coordenada X do segundo canto.
  • y2: Um DOUBLE valor, representando a coordenada Y do segundo canto.

Devoluções

Um valor do tipo GEOMETRY, representando o envelope alinhado com eixos 2D dos dois cantos de entrada. O SRID da geometria devolvida é 0.

Os cantos de entrada podem ser fornecidos em qualquer ordem; o envelope resultante é o mesmo que se os cantos fossem normalizados para (xmin, ymin) e (xmax, ymax).

O tipo da geometria devolvida depende dos cantos de entrada:

  • Se a caixa degenerar num único ponto (x1 = x2 e y1 = y2), o resultado é um ponto.
  • Se a caixa degenerar para um segmento (x1 = x2 ou y1 = y2, mas não ambos), o resultado é uma sequência de linhas com dois pontos.
  • Caso contrário, o resultado é um polígono com cinco vértices (anel fechado).

A função retorna NULL se qualquer uma das entradas for NULL.

Exemplos

-- Returns the polygon envelope defined by two corners.
> SELECT st_astext(st_makeenvelope(1.0, 2.0, 4.0, 6.0));
  POLYGON((1 2,1 6,4 6,4 2,1 2))
-- Corners may be provided in any order.
> SELECT st_astext(st_makeenvelope(4.0, 6.0, 1.0, 2.0));
  POLYGON((1 2,1 6,4 6,4 2,1 2))
-- Returns a point when the box degenerates to a point.
> SELECT st_astext(st_makeenvelope(3.0, 5.0, 3.0, 5.0));
  POINT(3 5)
-- Returns a linestring when the box degenerates to a horizontal segment.
> SELECT st_astext(st_makeenvelope(1.0, 0.0, 4.0, 0.0));
  LINESTRING(1 0,4 0)
-- Returns a linestring when the box degenerates to a vertical segment.
> SELECT st_astext(st_makeenvelope(0.0, 2.0, 0.0, 7.0));
  LINESTRING(0 2,0 7)
-- The SRID of the returned geometry is always 0.
> SELECT st_srid(st_makeenvelope(0.0, 0.0, 10.0, 10.0));
  0