h3_try_distance
-functie
Van toepassing op: Databricks SQL 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
ofh3CellId2Expr
een TEKENREEKS is die niet kan worden geconverteerd naar een BIGINT of overeenkomt met een BIGINT-waarde die kleiner is dan0x08001fffffffffff
of groter0x08ff3b6db6db6db6
is, 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