Freigeben über


h3_try_tessellateaswkb

Gibt ein Array von Strukturen zurück, die die Chips darstellen, die die Geografie in der angegebenen Auflösung abdecken, oder 'null', wenn die Geometrie ungültig ist. Genauer gesagt handelt es sich bei den Elementen des zurückgegebenen Arrays um benannte Strukturen mit drei Feldern namens "cellid", "core" und "chip".

  • Das Feld "cellid" enthält eine der H3-Zellen, die die Eingabegeografie abdecken.
  • Das Feld "Core" bestimmt, ob das Grenz polygon der Zelle H3 im Feld "cellid" innerhalb der Eingabegeografie enthalten ist. Dies kann nur für Arealeingaberegionen geschehen. Wenn die Zelle in der Eingabegeografie enthalten ist, wird der Wert auf True, andernfalls false festgelegt.
  • Das Feld "Chip" ist der (kartesische) Schnittpunkt des H3-Zell-Polygons, das der H3-Zell-ID im Feld "cellid" entspricht, wobei die Eingabegeografie im WKB-Format dargestellt ist. Der Satz der H3-Zellen-IDs, die als "cellid"-Elemente der Strukturen im Array zurückgegeben werden, ist eine minimale Abdeckung für die Eingabegeografie.

Die entsprechende Databricks SQL-Funktion finden Sie unter h3_try_tessellateaswkb Funktion.

Syntax

from pyspark.databricks.sql import functions as dbf

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

Die Parameter

Parameter Typ Description
col1 pyspark.sql.Column oder str Eine Zeichenfolge, die eine Geografie im WGS84-Koordinatenreferenzsystem im WKT- oder GeoJSON-Format darstellt, oder eine BINARY, die eine lineare oder areale Geografie im WGS84-Koordinatenreferenzsystem im WKB-Format darstellt.
col2 pyspark.sql.Column, stroder int Die Auflösung der H3-Zell-IDs, die den geographischen Bereich abdecken.

Examples

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))')]