Pular para o conteúdo principal

st_makeenvelope

Aplica-se a: Sim, marcado como certo Databricks Runtime 18.2 e acima

info

Visualização

Este recurso está em Pré-visualização Pública.

Retorna uma Geometria representando o envelope alinhado aos eixos 2D (caixa delimitadora mínima) definido pelas duas coordenadas de canto (x1, y1) e (x2, y2).

Para a função Databricks SQL correspondente, consulte a funçãost_makeenvelope.

Sintaxe

Python
from pyspark.databricks.sql import functions as dbf

dbf.st_makeenvelope(x1=<x1>, y1=<y1>, x2=<x2>, y2=<y2>)

Parâmetros

Parâmetro

Tipo

Descrição

x1

pyspark.sql.Column ou flutuar

A coordenada X do primeiro canto.

y1

pyspark.sql.Column ou flutuar

A coordenada Y do primeiro canto.

x2

pyspark.sql.Column ou flutuar

A coordenada X do segundo canto.

y2

pyspark.sql.Column ou flutuar

A coordenada Y do segundo canto.

Devoluções

pyspark.sql.ColumnUma coluna de valores de Geometria representando o envelope 2D alinhado aos eixos dos dois cantos de entrada. O SRID da geometria retornada é 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 retornada depende dos cantos de entrada:

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

A função retorna None se alguma das entradas for None.

Exemplos

Python
# Returns the polygon envelope defined by two corners.
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([(1.0, 2.0, 4.0, 6.0)], ['x1', 'y1', 'x2', 'y2'])
df.select(dbf.st_astext(dbf.st_makeenvelope('x1', 'y1', 'x2', 'y2')).alias('result')).collect()
Output
[Row(result='POLYGON((1 2,1 6,4 6,4 2,1 2))')]
Python
# Corners may be provided in any order.
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([(4.0, 6.0, 1.0, 2.0)], ['x1', 'y1', 'x2', 'y2'])
df.select(dbf.st_astext(dbf.st_makeenvelope('x1', 'y1', 'x2', 'y2')).alias('result')).collect()
Output
[Row(result='POLYGON((1 2,1 6,4 6,4 2,1 2))')]
Python
# Returns a point when the box degenerates to a point.
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([(3.0, 5.0, 3.0, 5.0)], ['x1', 'y1', 'x2', 'y2'])
df.select(dbf.st_astext(dbf.st_makeenvelope('x1', 'y1', 'x2', 'y2')).alias('result')).collect()
Output
[Row(result='POINT(3 5)')]
Python
# Returns a linestring when the box degenerates to a horizontal segment.
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([(1.0, 0.0, 4.0, 0.0)], ['x1', 'y1', 'x2', 'y2'])
df.select(dbf.st_astext(dbf.st_makeenvelope('x1', 'y1', 'x2', 'y2')).alias('result')).collect()
Output
[Row(result='LINESTRING(1 0,4 0)')]
Python
# Returns a linestring when the box degenerates to a vertical segment.
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([(0.0, 2.0, 0.0, 7.0)], ['x1', 'y1', 'x2', 'y2'])
df.select(dbf.st_astext(dbf.st_makeenvelope('x1', 'y1', 'x2', 'y2')).alias('result')).collect()
Output
[Row(result='LINESTRING(0 2,0 7)')]
Python
# The SRID of the returned geometry is always 0.
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([(0.0, 0.0, 10.0, 10.0)], ['x1', 'y1', 'x2', 'y2'])
df.select(dbf.st_srid(dbf.st_makeenvelope('x1', 'y1', 'x2', 'y2')).alias('result')).collect()
Output
[Row(result=0)]