h3_try_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 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 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.
  • İ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