メインコンテンツまでスキップ

st_makeenvelope

対象: はいにチェックマーク Databricks Runtime 18.2以降

2 つの角座標(x1, y1)(x2, y2)で定義される 2D 軸に沿ったエンベロープ (最小境界ボックス) を表すジオメトリを返します。

対応する Databricks SQL 関数については、 st_makeenvelope関数を参照してください。

構文

Python
from pyspark.databricks.sql import functions as dbf

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

パラメーター

パラメーター

Type

説明

x1

pyspark.sql.Column または浮く

最初の角のX座標。

y1

pyspark.sql.Column または浮く

最初の角のY座標。

x2

pyspark.sql.Column または浮く

2番目の角のX座標。

y2

pyspark.sql.Column または浮く

2番目の角のY座標。

パラメーター

Type

説明

x1

pyspark.sql.Column または浮く

最初の角のX座標。

y1

pyspark.sql.Column または浮く

最初の角のY座標。

x2

pyspark.sql.Column または浮く

2番目の角のX座標。

y2

pyspark.sql.Column または浮く

2番目の角のY座標。

戻り値

pyspark.sql.Column2つの入力コーナーの2次元軸に沿った包絡線を表すジオメトリ値の列。返されたジオメトリのSRIDは0です。

入力コーナーは任意の順序で指定できます。結果として得られるエンベロープは、コーナーが(xmin, ymin)(xmax, ymax)に正規化された場合と同じです。

返されるジオメトリのタイプは、入力されたコーナーによって異なります。

  • ボックスが単一の点( x1 = x2y1 = y2 )に退化する場合、結果は点になります。
  • ボックスがセグメント( x1 = x2またはy1 = y2 、ただし両方ではない)に退化する場合、結果は2つの点を持つ線分になります。
  • それ以外の場合は、頂点が5つの多角形(閉じた環)が生成される。

入力値のいずれかがNoneの場合、関数はNoneを返します。

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)]
このページの見出し