h3_tessellateaswkb

返回一个结构体数组,该数组代表以指定分辨率覆盖地理区域的芯片。 更确切地说,返回数组的元素是命名结构,其中包含三个字段名称“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.Columnstr 一个字符串,以 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))')]