Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:
Databricks Runtime 18 e versioni successive
Note
Databricks Runtime 18 è più recente di Databricks Runtime 18.0, 18.1 e 18.2. Le funzionalità che in precedenza avrebbero fornito come versione numerata successiva ora vengono forniti come aggiornamenti datati a Databricks Runtime 18. Per informazioni dettagliate, vedere Informazioni sulle note sulla versione unificata.
Importante
Questa funzionalità è in Anteprima Pubblica.
Restituisce un punto che viene garantito di trovarsi all'interno o nel valore Geometry di input.
Per la funzione SQL di Databricks corrispondente, vedere st_pointonsurface funzione.
Syntax
from pyspark.databricks.sql import functions as dbf
dbf.st_pointonsurface(col=<col>)
Parametri
| Parametro | Tipo | Description |
|---|---|---|
col |
pyspark.sql.Column oppure str |
Valore di Geometry |
Returns
pyspark.sql.Column: colonna di valori Geometry 2D point, ognuno dei quali è garantito di trovarsi nella geometria di input corrispondente o all'interno della geometria di input corrispondente. Più precisamente:
- Se la geometria di input è vuota, viene restituito il punto vuoto 2D.
- Se la geometria di input è un punto non vuoto, viene restituita la proiezione 2D del punto.
- Se la geometria di input è una stringa di riga non vuota, viene restituito il vertice mediano.
- Se la geometria di input è un poligono non vuoto, quando possibile viene restituito un punto all'interno del poligono; in caso contrario, un punto sul limite.
- Se la geometria di input è un multipunto, viene restituito il punto non vuoto più vicino al centro del rettangolo di selezione.
- Se la geometria di input è una stringa multilinea, viene restituito un punto sulla superficie della linea con la lunghezza più grande.
- Se la geometria di input è un multipolygon, viene restituito un punto sulla superficie del poligono con l'area più grande.
- Se la geometria di input è una raccolta geometry, viene restituito un punto sulla superficie di uno degli elementi dimensionali massimi della raccolta.
Lo SRID della geometria restituita è uguale a quello della geometria di input.
La funzione restituisce None se l'input è 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)')]