h3_distance-functie

Van toepassing op:vinkje als ja aan Databricks SQL vinkje als ja aan Databricks Runtime 11.3 LTS en hoger

Retourneert de rasterafstand van de twee H3-cel-id's van invoer.

Syntaxis

h3_distance ( h3CellId1Expr, h3CellId2Expr )

Argumenten

  • h3CellId1Expr: Een BIGINT-expressie of een hexadecimale TEKENREEKS-expressie die een H3-cel-id vertegenwoordigt.
  • h3CellId2Expr: Een BIGINT-expressie of een hexadecimale TEKENREEKS-expressie die een H3-cel-id vertegenwoordigt.

Retouren

Een BIGINT-waarde die de rasterafstand is van de twee H3-invoercellen die naar verwachting dezelfde resolutie hebben.

De functie retourneert NULL als een van de invoerexpressies NULL is. De functie voert gedeeltelijke validatie uit met betrekking tot of het invoerargument een geldige H3-cel-id is. Een noodzakelijke, maar niet voldoende voorwaarde voor een geldige H3-id is dat de waarde tussen 0x08001fffffffffff en 0x08ff3b6db6db6db6. Het gedrag van de functie is niet gedefinieerd als een van de twee invoercel-id's geen geldige cel-id is.

Foutvoorwaarden

  • Als h3CellId1Expr of h3CellId2Expr een TEKENREEKS is die niet kan worden geconverteerd naar een BIGINT of overeenkomt met een BIGINT-waarde die kleiner is dan 0x08001fffffffffff of groter 0x08ff3b6db6db6db6is, retourneert de functie H3_INVALID_CELL_ID.
  • Als de rasterafstand niet is gedefinieerd, retourneert de functie H3_UNDEFINED_GRID_DISTANCE. De rasterafstand kan om een van de volgende redenen niet worden gedefinieerd:
    • De twee H3-invoercellen hebben een andere resolutie.
    • Een van de twee invoer H3-cellen is een vijfhoekige cel.
    • De twee H3-cellen worden gescheiden door een vijfhoekige cel.
    • De twee H3-cellen liggen te ver van elkaar af.

Voorbeelden

-- 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