Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Vrátí pole struktur představujících čipy pokrývající zeměpisné oblasti v zadaném rozlišení. Přesněji řečeno, prvky vráceného pole jsou pojmenované struktury se třemi poli s názvy "cellid", "core" a "chip".
- Pole "cellid" obsahuje jednu z buněk H3 pokrývajících vstupní zeměpisnou oblast.
- Pole "jádro" určuje, zda je hranice polygonu buňky H3, uvedená v poli "cellid", obsažena ve vstupní geografii. K tomu může dojít pouze u plošných vstupních geografií. Pokud je buňka obsažena ve vstupní zeměpisné oblasti, hodnota je nastavena na
True, afalsejinak. - Pole "chip" je kartézský průsečík mnohoúhelníku buňky H3, který odpovídá ID buňky H3 v poli "cellid" se vstupní zeměpisnou oblastí ve formě WKB. Sada ID buněk H3, která je vrácena jako elementy „cellid“ ve strukturách v poli, představuje minimální pokrytí pro zadanou zeměpisnou oblast.
Odpovídající funkci SQL Databricks vizte funkceh3_tessellateaswkb.
Syntaxe
from pyspark.databricks.sql import functions as dbf
dbf.h3_tessellateaswkb(col1=<col1>, col2=<col2>)
Parametry
| Parameter | Typ | Description |
|---|---|---|
col1 |
pyspark.sql.Column nebo str |
Řetězec představující zeměpisnou oblast v referenčním systému souřadnic WGS84 ve formátu WKT nebo GeoJSON nebo BINARY představující lineární nebo areální geografii v referenčním systému souřadnic WGS84 ve formátu WKB. |
col2 |
pyspark.sql.Column, str nebo int |
Rozlišení ID buněk H3 pokrývajících geografickou oblast. |
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_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))')]