Udostępnij przez


h3_try_tessellateaswkb

Zwraca tablicę struktur danych reprezentujących układy obejmujące obszar geograficzny w określonej rozdzielczości lub wartość null, jeśli geometria jest nieprawidłowa. Dokładniej mówiąc, elementy zwracanej tablicy są nazwane strukturami z trzema nazwami pól "cellid", "core" i "chip":

  • Pole "cellid" zawiera jedną z komórek H3 obejmujących lokalizację geograficzną danych wejściowych.
  • Pole "core" określa, czy wielokąt graniczny komórki H3 w polu "cellid" mieści się wewnątrz geograficznego obszaru wejściowego. Może się to zdarzyć tylko w przypadku powierzchniowych danych geoprzestrzennych. Jeśli komórka jest zawarta w lokalizacji geograficznej danych wejściowych, wartość jest ustawiona na True, a w przeciwnym razie na false.
  • Pole "chip" to przecięcie (kartezjańskie) wielokąta komórki H3, który odpowiada identyfikatorowi komórki H3 w polu "cellid", z geografią źródłową reprezentowaną w formacie WKB. Zestaw identyfikatorów komórek H3 zwracanych jako elementy "cellid" struktur w tablicy jest minimalnym zestawem pokrycia dla lokalizacji geograficznej danych wejściowych.

Aby uzyskać odpowiednią funkcję SQL usługi Databricks, zobacz h3_try_tessellateaswkb funkcja.

Składnia

from pyspark.databricks.sql import functions as dbf

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

Parametry

Parameter Typ Description
col1 pyspark.sql.Column lub str Ciąg reprezentujący lokalizację geograficzną w systemie odniesienia współrzędnych WGS84 w formacie WKT lub GeoJSON albo PLIK BINARNY reprezentujący liniową lub arealną lokalizację geograficzną w systemie odniesienia współrzędnych WGS84 w formacie WKB.
col2 pyspark.sql.Column, str lub int Rozdzielczość identyfikatorów komórek H3, które obejmują obszar geograficzny.

Przykłady

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