Aller au contenu principal

st_makeenvelope

S’applique à : coché oui 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

Python
from pyspark.databricks.sql import functions as dbf

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

parameter

parameter

Type

Description

x1

pyspark.sql.Column ou flottant

La coordonnée X du premier coin.

y1

pyspark.sql.Column ou flottant

La coordonnée Y du premier angle.

x2

pyspark.sql.Column ou flottant

La coordonnée X du 2e coin.

y2

pyspark.sql.Column ou flottant

La coordonnée Y du deuxième coin.

parameter

Type

Description

x1

pyspark.sql.Column ou flottant

La coordonnée X du premier coin.

y1

pyspark.sql.Column ou flottant

La coordonnée Y du premier angle.

x2

pyspark.sql.Column ou flottant

La coordonnée X du 2e coin.

y2

pyspark.sql.Column ou flottant

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 = x2 et y1 = y2), le résultat est un point.
  • Si la boîte dégénère en un segment (x1 = x2 ou y1 = 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

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