Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:
Databricks Runtime 18 LTS och senare
Note
Databricks Runtime 18 är nyare än Databricks Runtime 18.0, 18.1 och 18.2. Funktioner som tidigare skulle ha levererats som en senare numrerad version levereras nu som daterade uppdateringar till Databricks Runtime 18 i stället. Mer information finns i Om enhetliga viktig information.
Important
Den här funktionen finns som allmänt tillgänglig förhandsversion.
Returnerar en punkt som garanterat ligger på eller inuti indatageometrivärdet .
För motsvarande Databricks SQL-funktion, se st_pointonsurface funktion.
Syntax
from pyspark.databricks.sql import functions as dbf
dbf.st_pointonsurface(col=<col>)
Parameters
| Parameter | Type | Description |
|---|---|---|
col |
pyspark.sql.Column eller str |
Ett geometrivärde. |
Returns
pyspark.sql.Column: En kolumn med 2D-punktsgeometrivärden , var och en garanterad att ligga på eller inuti motsvarande indatageometri. Mer exakt:
- Om indatageometrin är tom returneras den tomma 2D-punkten.
- Om indatageometrin är en icke-tom punkt returneras 2D-projektionen av punkten.
- Om indatageometrin är en icke-tom linjering returneras medianhörnet.
- Om indatageometrin är en icke-tom polygon returneras en punkt i polygonens inre när det är möjligt. annars en punkt på gränsen.
- Om indatageometrin är en multipunkt returneras den icke-tomma punkten närmast avgränsningsboxens mittpunkt.
- Om indatageometrin är en multilinestring returneras en punkt på ytan av linjerna med den största längden.
- Om indatageometrin är en multipolygon returneras en punkt på polygonens yta med det största området.
- Om indatageometrin är en geometrisamling returneras en punkt på ytan av ett av samlingens maximalt dimensionella element.
SRID för den returnerade geometrin är samma som för indatageometrin.
Funktionen returnerar None om indata är None.
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)')]