共用方式為


h3_kringdistances函式

適用範圍:勾選為「是」 Databricks SQL 勾選為「是」 Databricks Runtime 11.3 LTS 和其以上版本

傳回與原 H3 單元格的網格線距離 k 內的所有 H3 單元格(以長整數或字串表示),以及其與原 H3 單元格的距離。

語法

h3_kringdistances ( h3CellIdExpr, kExpr )

引數

  • h3CellIdExpr:BIGINT 運算式,或代表 H3 單元格標識符的十六進位 STRING 運算式。
  • kExpr:代表網格線距離的 INTEGER 運算式。 kExpr 必須是非負數。

退貨

名為 和cellid的具名結構陣列,分別具有兩個字段distance,其中結構中的第一個字段是 H3 單元格標識符(以長整數或字串表示),而結構中的第二個字段是與原 H3 單元格(以整數表示)的距離。 輸出中 H3 儲存格識別碼的類型與 的類型 h3CellIdExpr相同。

傳回之ARRAY中的元素會根據其與原始H3單元格的距離排序。 對應於返回陣列中相同距離的元素可以按任何順序返回。 如果任一輸入表達式為 NULL,此函式會傳回 NULL。 函式會針對輸入自變數是否為有效的 H3 單元格標識碼執行部分驗證。 有效 H3 識別符的一個必要但非充分條件是其值在 0x08001fffffffffff0x08ff3b6db6db6db6 之間。 如果輸入儲存格標識碼不是有效的儲存格標識碼,則函式的行為是未定義的。 如果方格距離的值為零,傳回的陣列會包含等於輸入 H3 單元格標識碼的單一值。

錯誤條件

範例

-- 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