Aracılığıyla paylaş


h3_kringdistances 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

Kaynak H3 hücresinden kılavuz uzaklığındaki k tüm H3 hücrelerini (uzun tamsayılar veya dizeler olarak temsil edilir) ve kaynak H3 hücresinden uzaklıklarını döndürür.

Söz dizimi

h3_kringdistances ( h3CellIdExpr, kExpr )

Bağımsız değişkenler

  • h3CellIdExpr: H3 hücre kimliğini temsil eden bir BIGINT ifadesi veya onaltılık STRING ifadesi.
  • kExpr: Kılavuz uzaklığı temsil eden integer ifadesi. kExpr negatif olmamalıdır.

Döndürülenler

Adlandırılmış yapı dizisinde sırasıyla ve distanceadlı cellid iki alan bulunur; burada yapıdaki ilk alan bir H3 hücre kimliği (uzun bir tamsayı veya dize olarak gösterilir) ve yapıdaki ikinci alan da kaynak H3 hücresinden (tamsayı olarak temsil edilir) uzaklığıdır. Çıktıdaki H3 hücre kimliklerinin türü, türüyle h3CellIdExpraynıdır.

Döndürülen DIZI içindeki öğeler, çıkış noktası H3 hücresinden uzaklıklarına göre sıralanır. Döndürülen DIZIdeki aynı uzaklıklara karşılık gelen öğeler herhangi bir sırada döndürülebilir. 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. Giriş hücresi kimliği geçerli bir hücre kimliği değilse işlevin davranışı tanımsız olur. Kılavuz uzaklığı değeri sıfırsa, döndürülen dizi giriş H3 hücre kimliğine eşit tek bir değer içerir.

Hata koşulları

  • BIR 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 iseh3CellIdExpr, işlevi H3_INVALID_CELL_ID
  • NegatifsekExpr, işlev H3_INVALID_GRID_DISTANCE_VALUE verir

Örnekler

-- Simple example where the first argument is a BIGINT.
> SELECT h3_kringdistances(599686042433355775, 1)
  [{"cellid":599686042433355775,"distance":0},{"cellid":599686030622195711,"distance":1},{"cellid":599686044580839423,"distance":1},{"cellid":599686038138388479,"distance":1},{"cellid":599686043507097599,"distance":1},{"cellid":599686015589810175,"distance":1},{"cellid":599686014516068351,"distance":1}]

-- Simple example where the first argument is a STRING.
> SELECT h3_kringdistances('85283473fffffff', 1)
  [{"cellid":"85283473fffffff","distance":0},{"cellid":"85283447fffffff","distance":1},{"cellid":"8528347bfffffff","distance":1},{"cellid":"85283463fffffff","distance":1},{"cellid":"85283477fffffff","distance":1},{"cellid":"8528340ffffffff","distance":1},{"cellid":"8528340bfffffff","distance":1}]

-- First input is an invalid H3 cell ID.
> SELECT h3_kringdistances(0, 0)
  [H3_INVALID_CELL_ID] 0 is not a valid H3 cell ID

-- Second input is an invalid grid distance value.
> SELECT h3_kringdistances('85283473fffffff', -1)
  [H3_INVALID_GRID_DISTANCE_VALUE] H3 grid distance -1 must be non-negative