h3_kringdistances函數

適用於:勾選“是”磚的SQL勾選“是”Databricks運行時11.2及以上

返回網格距離內的所有H3單元格(表示為長整數或字符串)k從原點H3細胞開始,以及它們到原點H3細胞的距離。

語法

h3_kringdistancesh3CellIdExprkExpr

參數

  • h3CellIdExpr: BIGINT表達式,或表示H3單元格ID的十六進製STRING表達式。

  • kExpr:表示網格距離的INTEGER表達式。kExpr必須是非負的。

返回

命名結構體的數組,包含兩個字段cellid而且距離,其中結構體中的第一個字段是H3單元格ID(表示為長整數或字符串),而結構體中的第二個字段是它與原始H3單元格的距離(表示為整數)。輸出中H3單元格id的類型與的類型相同h3CellIdExpr

返回ARRAY中的元素根據它們與原始H3單元格的距離進行排序。返回ARRAY中與相同距離對應的元素可以按任何順序返回。如果任何一個輸入表達式為NULL,則該函數返回NULL。該函數對輸入參數是否為有效的H3單元格ID進行部分驗證。一個有效H3 ID的必要但不是充分條件是它的值在0 x08001fffffffffff而且0 x08ff3b6db6db6db6.如果輸入單元格ID不是有效的單元格ID,則函數的行為是未定義的。如果網格距離的值為零,則返回的數組包含一個等於輸入H3單元格ID的值。

錯誤條件

例子

簡單的例子,第一個參數是BIGINT。> SELECT h3_kringdistance (599686042433355775, 1) [{"cellid":599686042433355775,"distance":0},{"cellid":599686030622195711,"distance":1},{"cellid":599686044580839423,"distance":1},{"cellid": 599686043507097599,"distance":1},{"cellid":599686015589810175,"distance":1},{"cellid": 599686015589810175,"distance":1},{"cellid":599686014516068351,"distance":1}]——第一個參數為STRING的簡單示例。>選擇h3_kringdistances (' 85283473 fffffff ', 1)[{“cellid”:“85283473 fffffff”,“距離”:0},{“cellid”:“85283447 fffffff”,“距離”:1},{“cellid”:“8528347 bfffffff”,“距離”:1},{“cellid”:“85283463 fffffff”,“距離”:1},{“cellid”:“85283477 fffffff”,“距離”:1},{“cellid”:“8528340 ffffffff”,“距離”:1},{“cellid”:“8528340 bfffffff”,“距離”:1}]——首先輸入一個無效的H3細胞ID。> SELECT h3_kringdistance (0,0) [H3_INVALID_CELL_ID] 0不是有效的H3單元ID——第二個輸入是無效的網格距離值。> SELECT h3_kringdistance ('85283473fffffff', -1) [H3_INVALID_GRID_DISTANCE_VALUE] H3 grid distance -1必須是非負的