Aracılığıyla paylaş


h3_distance işlevi

Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş 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 0x08ff3b6db6db6db6arası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üçük 0x08001fffffffffff veya daha büyük 0x08ff3b6db6db6db6bir 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