Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:
Databricks Runtime 18 LTS и выше
Note
Databricks Runtime 18 является более новым, чем Databricks Runtime 18.0, 18.1 и 18.2. Функции, которые ранее были отправлены в качестве более поздней нумеровой версии, теперь отправляются как устаревшие обновления в Databricks Runtime 18. Дополнительные сведения см. в разделе "Сведения об унифицированных заметках о выпуске".
Important
Эта функция доступна в общедоступной предварительной версии.
Возвращает точку, которая гарантированно лежит на входном значении Geometry или внутри нее.
Для соответствующей функции Databricks SQL смотрите функцию st_pointonsurface.
Syntax
from pyspark.databricks.sql import functions as dbf
dbf.st_pointonsurface(col=<col>)
Parameters
| Parameter | Type | Description |
|---|---|---|
col |
pyspark.sql.Column или str |
Geometry значение. |
Returns
pyspark.sql.Column: столбец 2D-значений geometry , каждый из которых гарантированно лежит или находится внутри соответствующей входной геометрии. Точнее:
- Если входная геометрия пуста, возвращается 2D пустая точка.
- Если входная геометрия является непустой точкой, возвращается 2D-проекция точки.
- Если входная геометрия является непустой строковой строкой, возвращается медианная вершина.
- Если входная геометрия является непустой многоугольником, точка в интерьере многоугольника возвращается по возможности; в противном случае точка на границе.
- Если входная геометрия является многоточием, возвращается непустая точка, близкая к ограничивающему центру поля.
- Если входная геометрия является многострочной, возвращается точка на поверхности линии с наибольшей длиной.
- Если входная геометрия является многоугольником, возвращается точка на поверхности многоугольника с самой большой областью.
- Если входная геометрия является коллекцией геометрии, возвращается точка на поверхности одного из максимальных размерных элементов коллекции.
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)')]