st_makeenvelope

Se aplica a:check marcado yes Databricks Runtime 18.2 y versiones posteriores

Important

Esta característica está en versión preliminar pública.

Devuelve una geometría que representa el sobre alineado con el eje 2D (cuadro de límite mínimo) definido por las dos coordenadas (x1, y1) de esquina y (x2, y2).

Para obtener la función SQL de Databricks correspondiente, consulte st_makeenvelope function.

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 o flotante Coordenada X de la primera esquina.
y1 pyspark.sql.Column o flotante Coordenada Y de la primera esquina.
x2 pyspark.sql.Column o flotante Coordenada X de la segunda esquina.
y2 pyspark.sql.Column o flotante Coordenada Y de la segunda esquina.

Devoluciones

pyspark.sql.Column: una columna de valores geometry que representa el sobre alineado con el eje 2D de las dos esquinas de entrada. El SRID de la geometría devuelta es 0.

Las esquinas de entrada se pueden proporcionar en cualquier orden; el sobre resultante es el mismo que si las esquinas se normalizaran en (xmin, ymin) y (xmax, ymax).

El tipo de geometría devuelta depende de las esquinas de entrada:

  • Si el cuadro se degenera en un único punto (x1 = x2 y y1 = y2), el resultado es un punto.
  • Si el cuadro se degenera en un segmento (x1 = x2 o y1 = y2, pero no ambos), el resultado es una cadena de líneas con dos puntos.
  • De lo contrario, el resultado es un polígono con cinco vértices (anillo cerrado).

La función devuelve None si alguna de las entradas es None.

Ejemplos

# 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)]