st_makeenvelope
S’applique à : Databricks Runtime 18.2 et versions ultérieures
Retourne une Geometry représentant l'enveloppe alignée sur l'axe 2D (boîte englobante minimale) définie par les deux coordonnées d'angle (x1, y1) et (x2, y2).
Pour la fonction Databricks SQL correspondante, consultez la fonctionst_makeenvelope.
Syntaxe
from pyspark.databricks.sql import functions as dbf
dbf.st_makeenvelope(x1=<x1>, y1=<y1>, x2=<x2>, y2=<y2>)
parameter
parameter | Type | Description |
|---|---|---|
|
| La coordonnée X du premier coin. |
|
| La coordonnée Y du premier angle. |
|
| La coordonnée X du 2e coin. |
|
| La coordonnée Y du deuxième coin. |
Renvoie
pyspark.sql.Column: Une colonne de valeurs de géométrie représentant l'enveloppe alignée sur l'axe 2D des deux coins d'entrée. Le SRID de la géométrie renvoyée est 0.
Les coins d'entrée peuvent être fournis dans n'importe quel ordre ; l'enveloppe résultante est la même que si les coins étaient normalisés à (xmin, ymin) et (xmax, ymax).
Le type de la géométrie retournée dépend des coins d'entrée :
- Si la boîte dégénère en un point unique (
x1 = x2ety1 = y2), le résultat est un point. - Si la boîte dégénère en un segment (
x1 = x2ouy1 = y2, mais pas les deux), le résultat est une ligne à deux points. - Sinon, le résultat est un polygone à cinq sommets (anneau fermé).
La fonction renvoie None si l’une des entrées est None.
Exemples
# 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)]