st_pointonsurface

Şunun için geçerlidir:evet olarak işaretlendi Databricks Runtime 18 LTS ve üzerini denetleyin

Note

Databricks Runtime 18, Databricks Runtime 18.0, 18.1 ve 18.2'den daha yenidir. Daha önce daha sonra numaralandırılmış sürüm olarak gönderilecek özellikler artık databricks Runtime 18'e tarihli güncelleştirmeler olarak gönderilir. Ayrıntılar için bkz. Birleşik sürüm notları hakkında.

Important

Bu özellik Genel Önizleme aşamasındadır.

Giriş Geometrisi değerinin üzerinde veya içinde yatacak şekilde garanti edilen bir nokta döndürür.

İlgili Databricks SQL fonksiyonu için bakınız st_pointonsurface fonksiyonu.

Syntax

from pyspark.databricks.sql import functions as dbf

dbf.st_pointonsurface(col=<col>)

Parameters

Parametre Type Description
col pyspark.sql.Column veya str Bir Geometri değeri.

İadeler

pyspark.sql.Column: Her biri ilgili giriş geometrisinin üzerinde veya içinde olması garanti edilen 2B nokta Geometrisi değerlerini içeren bir sütun. Daha doğrusu:

  • Giriş geometrisi boşsa, 2B boş nokta döndürülür.
  • Giriş geometrisi boş olmayan bir noktaysa, noktanın 2B projeksiyonu döndürülür.
  • Giriş geometrisi boş olmayan bir çizgi dizesiyse ortanca köşe döndürülür.
  • Giriş geometrisi boş olmayan bir çokgense, mümkün olduğunda çokgenin iç kısmındaki bir nokta döndürülür; aksi takdirde sınırında bir nokta.
  • Giriş geometrisi çok noktalıysa, sınırlayıcı kutu merkezine en yakın boş olmayan nokta döndürülür.
  • Giriş geometrisi çok satırlı bir dizeyse, çizgi dizesinin yüzeyinde en büyük uzunluğa sahip bir nokta döndürülür.
  • Giriş geometrisi çok kutupluysa, çokgen yüzeyinde en büyük alana sahip bir nokta döndürülür.
  • Giriş geometrisi bir geometri koleksiyonuysa, koleksiyonun maksimum boyutlu öğelerinden birinin yüzeyinde bir nokta döndürülür.

Döndürülen geometrinin SRID değeri, giriş geometrisinin SRID değeriyle aynıdır.

İşlev, birinci parametre None ise None döndürür.

Examples

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