共用方式為


h3_try_tessellateaswkb

回傳一個結構陣列,代表在指定解析度下覆蓋地理的晶片,若幾何無效則為空。 更精確地說,回傳陣列中的元素是具名結構體,每個結構體有三個欄位:「cellid」、「core」和「chip」。

  • 「cellid」欄位包含其中一個涵蓋輸入地理的 H3 單元格。
  • 「core」欄位決定「cellid」欄位中 H3 單元的邊界多邊形是否位於輸入地理範圍內。 這種情況只能發生在區域輸入地理上。 若該格子包含在輸入地理中,則值設為 Truefalse 否則。
  • 「晶片」欄位是 H3 單元多邊形(對應於「cellid」欄位中的 H3 單元 ID)與輸入地理(以 WKB 格式表示)的(笛卡兒)交點。 陣列中的結構體內以 "cellid" 形式回傳的 H3 單元 ID 集合,是針對輸入地理的最小覆蓋集合。

關於對應的 Databricks SQL 函式,請參見 h3_try_tessellateaswkb 函數

語法

from pyspark.databricks.sql import functions as dbf

dbf.h3_try_tessellateaswkb(col1=<col1>, col2=<col2>)

參數

參數 類型 Description
col1 pyspark.sql.Columnstr 在 WGS84 座標參考系統中,表示地理的字串可以是 WKT 或 GeoJSON 格式;而表示線性或區域地理的二進位則以 WKB 格式呈現。
col2 pyspark.sql.Columnstrint 涵蓋地理範圍的 H3 cell 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_try_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))')]