返回一个结构体数组,该数组代表以指定分辨率覆盖地理区域的芯片。 更确切地说,返回数组的元素是命名结构,其中包含三个字段名称“cellid”、“core”和“chip”:
- “cellid”字段包含覆盖输入地理的 H3 单元格之一。
- “core”字段确定“cellid”字段中 H3 单元格的边界多边形是否包含在输入地理位置内。 这仅适用于输入地理区域。 如果单元格包含在输入地理位置中,则该值设置为
True,否则为false。 - “chip”字段是 H3 单元格多边形的(笛卡尔)交集,对应于“cellid”字段中的 H3 单元格 ID,输入地理以 WKB 格式表示。 作为数组中结构的“cellid”元素返回的 H3 单元格 ID 的集合,是对输入的地理区域的最小覆盖集。
有关相应的 Databricks SQL 函数,请参阅 h3_tessellateaswkb 函数。
Syntax
from pyspark.databricks.sql import functions as dbf
dbf.h3_tessellateaswkb(col1=<col1>, col2=<col2>)
参数
| 参数 | 类型 | Description |
|---|---|---|
col1 |
pyspark.sql.Column 或 str |
一个字符串,以 WKT 或 GeoJSON 格式表示 WGS84 坐标引用系统中的地理位置,或者一个二进制 BINARY,表示 WGS84 坐标引用系统中采用 WKB 格式的线性或面状地理。 |
col2 |
pyspark.sql.Column、str 或 int |
涵盖地理区域的 H3 单元格 ID 的分辨率。 |
例子
from pyspark.databricks.sql import functions as dbf
from pyspark.sql import functions as f
df = spark.createDataFrame([('MULTIPOINT(20 0,20 10,40 30)', 0),], ['wkt', 'res'])
chips = df.select(
... f.inline(dbf.h3_tessellateaswkb('wkt', 'res')).alias('cell', 'core', 'chip'))
chips.select(dbf.h3_h3tostring('cell').alias('cell'),
... dbf.st_astext(dbf.st_geomfromwkb('chip')).alias('wkt')).collect()
[Row(cell='802dfffffffffff', wkt='POINT(40 30)'), Row(cell='806bfffffffffff', wkt='MULTIPOINT((20 0),(20 10))')]