st_pointonsurface

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

메모

Databricks Runtime 18은 Databricks Runtime 18.0, 18.1 및 18.2보다 최신입니다. 이전에 번호가 매겨진 버전으로 제공되었던 기능은 이제 Databricks Runtime 18에 대한 날짜가 지정된 업데이트로 제공됩니다. 자세한 내용은 통합 릴리스 정보 정보를 참조하세요.

입력 기하 도형 값에 있거나 내부에 놓이도록 보장되는 점을 반환합니다.

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

Syntax

from pyspark.databricks.sql import functions as dbf

dbf.st_pointonsurface(col=<col>)

매개 변수

매개 변수 유형 Description
col pyspark.sql.Column 또는 str 기하 값입니다.

Returns

pyspark.sql.Column: 2D 점 기하 도형 값의 열로, 각각 해당 입력 기하 도형에 있거나 내부에 배치됩니다. 더 정확하게 말하면:

  • 입력 기하 도형이 비어 있으면 2D 빈 점이 반환됩니다.
  • 입력 기하 도형이 비어있지 않은 점이면 점의 2D 프로젝션이 반환됩니다.
  • 입력 기하 도형이 비어 있는 줄 바꿈이 아니면 중앙값 꼭짓점이 반환됩니다.
  • 입력 기하 도형이 비어있지 않은 다각형이면 가능하면 다각형 내부 지점이 반환됩니다. 그렇지 않으면 경계의 한 지점입니다.
  • 입력 기하 도형이 다중 지점이면 경계 상자 가운데에 가장 가까운 비어있지 않은 점이 반환됩니다.
  • 입력 기하 도형이 다중 줄 바꿈이면 길이가 가장 큰 줄 바꿈 표면의 점이 반환됩니다.
  • 입력 기하 도형이 다각형이면 다각형 표면에서 가장 큰 영역이 있는 점이 반환됩니다.
  • 입력 기하 도형이 기하 도형 컬렉션인 경우 컬렉션의 최대 차원 요소 중 하나의 표면에 있는 점이 반환됩니다.

반환된 기하 도형의 SRID는 입력 기하 도형의 SRID와 동일합니다.

입력이 None인 경우 함수는 None를 반환합니다.

예시

# Returns a point inside a 2D polygon.
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([('POLYGON((0 0,10 0,10 10,0 10,0 0))',)], ['wkt'])
df.select(dbf.st_asewkt(dbf.st_pointonsurface(dbf.st_geomfromtext('wkt'))).alias('result')).collect()
[Row(result='POINT(5 5)')]
# For a polygon with a hole, the result lies in the donut region.
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([('POLYGON((0 0,30 0,30 30,0 30,0 0),(5 5,25 5,25 25,5 25,5 5))',)], ['wkt'])
df.select(dbf.st_asewkt(dbf.st_pointonsurface(dbf.st_geomfromtext('wkt'))).alias('result')).collect()
[Row(result='POINT(3.75 3.75)')]
# For a 3DZ linestring, the median vertex is returned and the Z coordinate is dropped.
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([('LINESTRING Z (1 2 -1,3 4 -2,5 6 -3)',)], ['wkt'])
df.select(dbf.st_asewkt(dbf.st_pointonsurface(dbf.st_geomfromtext('wkt'))).alias('result')).collect()
[Row(result='POINT(3 4)')]
# For a multipolygon, a point on the polygon with the largest area is returned.
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([('MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0)),((100 100,101 100,101 101,100 101,100 100)))',)], ['wkt'])
df.select(dbf.st_asewkt(dbf.st_pointonsurface(dbf.st_geomfromtext('wkt'))).alias('result')).collect()
[Row(result='POINT(5 5)')]
# The SRID of the input geometry is preserved.
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([('POLYGON((0 0,10 0,10 10,0 10,0 0))',)], ['wkt'])
df.select(dbf.st_asewkt(dbf.st_pointonsurface(dbf.st_geomfromtext('wkt', 3857))).alias('result')).collect()
[Row(result='SRID=3857;POINT(5 5)')]