Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:
Databricks Runtime 18.2 e superior
Importante
Esse recurso está em Visualização Pública.
Retorna uma Geometria que representa o envelope alinhado ao eixo 2D (caixa delimitadora mínima) definida pelas duas coordenadas (x1, y1) de canto e (x2, y2).
Para a função SQL do Databricks correspondente, consulte a função st_makeenvelope.
Syntax
from pyspark.databricks.sql import functions as dbf
dbf.st_makeenvelope(x1=<x1>, y1=<y1>, x2=<x2>, y2=<y2>)
Parameters
| Parâmetro | Tipo | Description |
|---|---|---|
x1 |
pyspark.sql.Column ou float |
A coordenada X do primeiro canto. |
y1 |
pyspark.sql.Column ou float |
A coordenada Y do primeiro canto. |
x2 |
pyspark.sql.Column ou float |
A coordenada X do segundo canto. |
y2 |
pyspark.sql.Column ou float |
A coordenada Y do segundo canto. |
Returns
pyspark.sql.Column: uma coluna de valores geometry que representam o envelope alinhado ao eixo 2D 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 foram normalizados para (xmin, ymin) e (xmax, ymax).
O tipo da geometria retornada depende dos cantos de entrada:
- Se a caixa degenerar para um único ponto (
x1 = x2ey1 = y2), o resultado será um ponto. - Se a caixa degenerar para um segmento (
x1 = x2ouy1 = y2, mas não ambos), o resultado será uma linha com dois pontos. - Caso contrário, o resultado será um polígono com cinco vértices (anel fechado).
A função retornará None se qualquer uma das entradas for None.
Exemplos
# 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()
[Row(result='POLYGON((1 2,1 6,4 6,4 2,1 2))')]
# 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()
[Row(result='POLYGON((1 2,1 6,4 6,4 2,1 2))')]
# 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()
[Row(result='POINT(3 5)')]
# 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()
[Row(result='LINESTRING(1 0,4 0)')]
# 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()
[Row(result='LINESTRING(0 2,0 7)')]
# 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()
[Row(result=0)]