h3_try_distance-functie

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

Deze functie gedraagt zich op dezelfde manier als h3_distance, behalve dat NULL wordt geretourneerd in plaats van een fout als de rasterafstand tussen de twee invoer-H3-cel-id's van dezelfde resolutie niet is gedefinieerd. Deze retourneert met name de rasterafstand van de twee H3-cel-id's van de invoer, die naar verwachting dezelfde resolutie hebben, of NULL als de afstand niet is gedefinieerd.

Syntaxis

h3_try_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, of NULL als de afstand niet is gedefinieerd.

De functie retourneert NULL als een van de invoerexpressies NULL is. Hiermee worden de invoerargumenten gedeeltelijk gevalideerd om te bepalen of deze geldige H3-cel-id's vertegenwoordigen. 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 twee H3-invoercellen een andere resolutie hebben, retourneert de functie H3_UNDEFINED_GRID_DISTANCE.
  • Als de rasterafstand tussen twee H3-cellen met dezelfde resolutie niet is gedefinieerd, retourneert de functie NULL. De rasterafstand kan om een van de volgende redenen niet worden gedefinieerd:
    • 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))
 NULL

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

-- Distance between two hexagons separated by a pentagon.
> SELECT h3_distance(590112494832320511, 590112632271273983)
 NULL