st_makeenvelope

적용 대상:예 Databricks Runtime 18.2 이상으로 표시된 확인

두 모서리 좌표로 (x2, y2)정의된 2D 축 맞춤 봉투(최소 경계 상자)를 나타내는 기하 도형을 반환합니다(x1, y1).

해당 Databricks SQL 함수에 대해 알아보려면 st_makeenvelope 함수를 참조하세요.

Syntax

from pyspark.databricks.sql import functions as dbf

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

Parameters

매개 변수 Type Description
x1 pyspark.sql.Column 또는 float 첫 번째 모서리의 X 좌표입니다.
y1 pyspark.sql.Column 또는 float 첫 번째 모서리의 Y 좌표입니다.
x2 pyspark.sql.Column 또는 float 두 번째 모서리의 X 좌표입니다.
y2 pyspark.sql.Column 또는 float 두 번째 모서리의 Y 좌표입니다.

Returns

pyspark.sql.Column: 두 입력 모서리의 2D 축 맞춤 봉투를 나타내는 기하 도형 값의 열입니다. 반환된 기하 도형의 SRID는 0입니다.

입력 모서리는 순서대로 제공될 수 있습니다. 결과 봉투는 모서리가 정규화된 (xmin, ymin) 경우와 (xmax, ymax)같습니다.

반환된 기하 도형의 형식은 입력 모서리에 따라 달라집니다.

  • 상자가 단일 지점(x1 = x2y1 = y2)으로 퇴화되면 결과는 점입니다.
  • 상자가 세그먼트(x1 = x2 또는 y1 = y2둘 다 아님)로 퇴화되면 결과는 두 점이 있는 줄 바꿈입니다.
  • 그렇지 않으면 결과는 5개의 꼭짓점(닫힌 링)이 있는 다각형입니다.

입력 중 하나라도 None인 경우 함수는 None을 반환합니다.

예제

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