h3_distance
işlevi
Şunlar için geçerlidir: Databricks SQL Databricks Runtime 11.3 LTS ve üzeri
İki giriş H3 hücre kimliklerinin kılavuz uzaklığı döndürür.
Söz dizimi
h3_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
Aynı çözünürlüğe sahip olması beklenen iki giriş H3 hücresinin kılavuz uzaklığı olan BIGINT değeri.
Giriş ifadelerinden herhangi biri NULL ise işlev NULL döndürür.
İşlev, giriş bağımsız değişkeninin geçerli bir H3 hücre kimliği olup olmadığıyla ilgili kısmi doğrulama yapar. 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.- Kılavuz uzaklığı tanımlanmamışsa işlev H3_UNDEFINED_GRID_DISTANCE döndürür. Aşağıdaki nedenlerden herhangi biri nedeniyle kılavuz uzaklığı tanımsız olabilir:
- İki giriş H3 hücresi farklı çözünürlüktedir.
- 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))
[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