h3_try_distance
işlevi
Şunlar için geçerlidir: Databricks SQL Databricks Runtime 13.3 LTS ve üzeri
Bu işlev h3_distance benzer şekilde davranır, ancak aynı çözümlemedeki iki giriş H3 hücre kimliği arasındaki kılavuz uzaklığı tanımsızsa hata yerine NULL döndürülür. Özellikle, aynı çözünürlükte olması beklenen iki giriş H3 hücre kimliklerinin kılavuz uzaklıklarını veya uzaklık tanımlanmamışsa NULL değerini döndürür.
Söz dizimi
h3_try_distance ( h3CellId1Expr, h3CellId2Expr )
Bağımsız değişkenler
h3CellId1Expr
: H3 hücre kimliğini temsil eden bir BIGINT ifadesi veya onaltılık STRING ifadesi.h3CellId2Expr
: H3 hücre kimliğini temsil eden bir BIGINT ifadesi veya onaltılık STRING ifadesi.
Döndürülenler
İki giriş H3 hücresinin kılavuz uzaklığı olan ve aynı çözünürlüğe sahip olması beklenen bir BIGINT değeri veya uzaklık tanımlanmamışsa NULL.
Giriş ifadelerinden herhangi biri NULL ise işlev NULL döndürür.
Geçerli H3 hücre kimliklerini temsil etmelerini belirlemek için giriş bağımsız değişkenlerini kısmen doğrular. Geçerli bir H3 kimliği için gerekli ancak yeterli olmayan bir koşul, değerinin ile 0x08ff3b6db6db6db6
arasında 0x08001fffffffffff
olmasıdır.
İki giriş hücresi kimliğinden herhangi biri geçerli bir hücre kimliği değilse işlevin davranışı tanımsız olur.
Hata koşulları
h3CellId1Expr
VEYAh3CellId2Expr
, BIGINT'e dönüştürülemeyen veya değerinden küçük0x08001fffffffffff
veya daha büyük0x08ff3b6db6db6db6
bir BIGINT değerine karşılık gelen bir STRING ise, işlev H3_INVALID_CELL_ID döndürür.- İki giriş H3 hücresi farklı çözünürlükteyse işlev H3_UNDEFINED_GRID_DISTANCE döndürür.
- Aynı çözümlemedeki iki H3 hücresi arasındaki kılavuz uzaklığı tanımsızsa işlev NULL döndürür. Aşağıdaki nedenlerden herhangi biri nedeniyle kılavuz uzaklığı tanımsız olabilir:
- giriş H3 hücrelerinden herhangi biri beşgen hücredir.
- İki H3 hücresi beşgen hücreyle ayrılır.
- İki H3 hücresi birbirinden çok uzakta.
Örnekler
-- 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