Sdílet prostřednictvím


Funkce h3_distance

Platí pro: zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano Databricks Runtime 11.3 LTS a vyšší

Vrátí vzdálenost mřížky dvou vstupních ID buněk H3.

Syntaxe

h3_distance ( h3CellId1Expr, h3CellId2Expr )

Argumenty

  • h3CellId1Expr: Výraz BIGINT nebo šestnáctkový výraz STRING představující ID buňky H3.
  • h3CellId2Expr: Výraz BIGINT nebo šestnáctkový výraz STRING představující ID buňky H3.

Návraty

Hodnota BIGINT, která je vzdáleností mřížky dvou vstupních buněk H3, které mají mít stejné rozlišení.

Funkce vrátí hodnotu NULL, pokud některý ze vstupních výrazů má hodnotu NULL. Funkce provádí částečné ověření týkající se toho, jestli je vstupním argumentem platné ID buňky H3. Nezbytným, ale ne dostatečným předpokladem platného ID H3 je, že jeho hodnota je mezi 0x08001fffffffffff a 0x08ff3b6db6db6db6. Chování funkce není definováno, pokud některé ze dvou ID vstupních buněk není platné ID buňky.

Chybové podmínky

  • Pokud h3CellId1Expr nebo h3CellId2Expr je řetězec, který nelze převést na BIGINT nebo odpovídá hodnotě BIGINT, která je menší nebo větší než 0x08001fffffffffff 0x08ff3b6db6db6db6, vrátí funkce H3_INVALID_CELL_ID.
  • Pokud není definována vzdálenost mřížky, vrátí funkce H3_UNDEFINED_GRID_DISTANCE. Vzdálenost mřížky může být nedefinována z některého z následujících důvodů:
    • Dvě vstupní buňky H3 mají odlišné rozlišení.
    • Každá ze dvou vstupních buněk H3 je pětiúhelníková buňka.
    • Dvě buňky H3 jsou odděleny pětiúhelníkovou buňkou.
    • Obě buňky H3 jsou od sebe příliš daleko.

Příklady

-- Example where the two arguments are BIGINTs representing H3 cells.
> SELECT h3_distance(599686030622195711, 599686015589810175);
 2

-- Example where the two arguments are hexadecimal STRINGs representing H3 cells.
> SELECT h3_distance('85283447fffffff', '8528340ffffffff')
 2

-- Example of two cells that too far apart from each other.
> SELECT h3_distance(h3_longlatash3(-120, 45, 13), h3_longlatash3(120, 45, 13))
  [H3_UNDEFINED_GRID_DISTANCE] H3 grid distance between 635723017894513407 and 635869868887430591 is undefined

-- Example of two cells with different resolutions.
> SELECT h3_distance(h3_longlatash3(120, 45, 13), h3_longlatash3(120, 45, 12));
  [H3_UNDEFINED_GRID_DISTANCE] H3 grid distance between 635869868887430591 and 631366269260060159 is undefined

-- First cell ID is a pentagon.
> SELECT h3_distance(590112357393367039, 590678880759578623)
  [H3_UNDEFINED_GRID_DISTANCE] H3 grid distance between 590112357393367039 and 590678880759578623 is undefined

-- Distance between two hexagons separated by a pentagon.
> SELECT h3_distance(590112494832320511, 590112632271273983)
  [H3_UNDEFINED_GRID_DISTANCE] H3 grid distance between 590112494832320511 and 590112632271273983 is undefined