Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:
Databricks Runtime 18 LTS e superiores
Note
O Databricks Runtime 18 é mais recente do que o Databricks Runtime 18.0, 18.1 e 18.2. Funcionalidades que anteriormente seriam enviadas como versões numeradas posteriores agora são enviadas como atualizações datadas do Databricks Runtime 18. Para mais detalhes, consulte Sobre as notas de lançamento unificadas.
Devolve um ponto que está garantido a estar sobre ou dentro do valor de Geometry de entrada.
Para a função SQL do Databricks correspondente, veja st_pointonsurface função.
Syntax
from pyspark.databricks.sql import functions as dbf
dbf.st_pointonsurface(col=<col>)
Parameters
| Parâmetro | Tipo | Description |
|---|---|---|
col |
pyspark.sql.Column ou str |
Um valor de Geometria. |
Devoluções
pyspark.sql.Column: Uma coluna de valores de Geometria de Pontos 2D, cada um garantido para estar sobre ou dentro da geometria de entrada correspondente. Mais precisamente:
- Se a geometria de entrada estiver vazia, o ponto vazio 2D é devolvido.
- Se a geometria de entrada for um ponto não vazio, a projeção 2D do ponto é devolvida.
- Se a geometria de entrada for uma cadeia de linha não vazia, o vértice mediano é devolvido.
- Se a geometria de entrada for um polígono não vazio, um ponto no interior do polígono é devolvido sempre que possível; caso contrário, um ponto no seu limite.
- Se a geometria de entrada for um multiponto, o ponto não vazio mais próximo do centro da caixa delimitadora é devolvido.
- Se a geometria de entrada for uma cadeia multilinha, um ponto na superfície da cadeia de linhas com o maior comprimento é retornado.
- Se a geometria de entrada for um multipolígono, um ponto na superfície do polígono com a maior área é devolvido.
- Se a geometria de entrada for uma coleção de geometria, um ponto na superfície de um dos elementos de dimensão máxima da coleção é retornado.
O SRID da geometria devolvida é igual ao da geometria de entrada.
A função retorna None se a entrada for 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)')]