h3_kringdistances
函數
適用於:磚的SQLDatabricks運行時11.2及以上
返回網格距離內的所有H3單元格(表示為長整數或字符串)k
從原點H3細胞開始,以及它們到原點H3細胞的距離。
返回
命名結構體的數組,包含兩個字段cellid
而且距離
,其中結構體中的第一個字段是H3單元格ID(表示為長整數或字符串),而結構體中的第二個字段是它與原始H3單元格的距離(表示為整數)。輸出中H3單元格id的類型與的類型相同h3CellIdExpr
.
返回ARRAY中的元素根據它們與原始H3單元格的距離進行排序。返回ARRAY中與相同距離對應的元素可以按任何順序返回。如果任何一個輸入表達式為NULL,則該函數返回NULL。該函數對輸入參數是否為有效的H3單元格ID進行部分驗證。一個有效H3 ID的必要但不是充分條件是它的值在0 x08001fffffffffff
而且0 x08ff3b6db6db6db6
.如果輸入單元格ID不是有效的單元格ID,則函數的行為是未定義的。如果網格距離的值為零,則返回的數組包含一個等於輸入H3單元格ID的值。
錯誤條件
如果
h3CellIdExpr
是一個不能轉換為BIGINT或對應的BIGINT值小於0 x08001fffffffffff
或者大於0 x08ff3b6db6db6db6
,函數返回H3_INVALID_CELL_ID如果
kExpr
是負的,函數返回H3_INVALID_GRID_DISTANCE_VALUE
例子
簡單的例子,第一個參數是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必須是非負的