共用方式為


h3_tessellateaswkb 函式

適用於:check marked yes Databricks Runtime 14.2 和更新版本

使用指定解析度的 H3 單元格,傳回輸入地理位置的鑲嵌。 鑲嵌是由結構的ARRAY表示,每個都代表鑲嵌的元素。 鑲嵌的每個元素都包含 H3 單元格標識碼(以長整數表示)、布爾值,指出輸入地理是否完全涵蓋單元格,以及對應至 輸入地理與 H3 單元格交集之 WKB 描述的 BINARY 值。

傳回的 H3 單元格會以指定解析度組成一組最少的六邊形或五角大樓,完全涵蓋輸入地理位置。 傳回的地理位置(透過其 WKB 表示法)形成輸入地理的鑲嵌。

語法

h3_tessellateaswkb ( geographyExpr, resolutionExpr )

引數

  • geographyExpr:BINARY 或 STRING 運算式,代表 WKBWKTGeoJSON 中的地理位置。 地理位置預期會有參考 WGS84 座標參考系統的經度和緯度座標。
  • resolutionExpr:INT 運算式,其介於 和 15 內含的值0,指定H3單元格標識碼的解析度。

傳回

具名結構的 ARRAY,其類型分別為 BIGINT、BOOLEAN 和 BINARY 的三個字段,名為 cellidcorechip,分別代表具有指定解析度之 H3 單元格的輸入地理鑲嵌。

結構中的第一個字段是 H3 單元格標識碼(以長整數表示)。 結構中的第二個字段是布爾值,指出H3單元格是否為核心儲存格,在此情況下,欄位的值為 ,在此情況下,欄位的值 truefalse。 核心儲存格是輸入地理完全涵蓋的 H3 儲存格(也就是說,其與輸入地理位置的交集是儲存格本身)。 第三個字段是 BINARY 值,代表 地理的 WKB 描述,這是輸入地理和 H3 單元格的交集。 傳回的 H3 儲存格會共同形成一組最少的輸入地理範圍。 對應至傳回 WKB 描述的地理位置,共同形成 輸入地理的鑲嵌 式(分解)。

如果任何輸入表示式為 NULL,則函式會傳NULL回 。 如果第一個輸入自變數的類型為 BINARY,則輸入值必須是 點、線條字串、多邊形、多點、多行字串或多多邊形的 WKB 描述。 如果第一個輸入自變數的類型為 STRING,則輸入值必須是 WKTGeoJSON 描述的點、線條字串、多邊形、多點、多行字串或多多邊形。 輸入地理位置的維度可以是 2D、3DZ、3DM 或 4D。

錯誤條件

  • 如果 geographyExpr 類型為 BINARY,且值是無效的 WKB 或表示 geometry 集合,則函式傳回WKB_PARSE_ERROR。
  • 如果 geographyExpr 類型為 STRING,且值是無效的 WKT 或表示 geometry 集合,則函式傳回WKT_PARSE_ERROR。
  • 如果 geographyExpr 類型為 STRING,且值是無效的 GeoJSON 或代表 geometry 集合,則函式會 傳回GEOJSON_PARSE_ERROR
  • 如果 resolutionExpr 小於或大於 15,則函式會傳回H3_INVALID_RESOLUTION_VALUE0

範例

> SELECT h3_h3tostring(cellid), core, hex(chip) FROM (SELECT inline(h3_tessellateaswkb('MULTIPOINT(20 0,20 10,40 30)', 0))) ORDER BY 1
  802dfffffffffff     false 010100000000000000000044400000000000003E40
  806bfffffffffff     false 010400000002000000010100000000000000000034400000000000000000010100000000000000000034400000000000002440

-- Feeding an empty geometry collection in GeoJSON format (geometry collections are not supported).
> SELECT h3_tessellateaswkb('{"type":"GeometryCollection","geometries":[]}', 2)
  [GEOJSON_PARSE_ERROR] Error parsing GeoJSON: Invalid or unsupported type '"GeometryCollection"' at position 9 SQLSTATE: 22023

-- Feeding an invalid WKB (invalid endianness value)
> SELECT h3_tessellateaswkb(unhex('020700000000'), 2)
  [WKB_PARSE_ERROR] Error parsing WKB: Invalid byte order 2 at position 1 SQLSTATE: 22023

-- Feeding an invalid polygon in WKT (polygon is not closed)
> SELECT h3_tessellateaswkb('POLYGON((-122.4194 37.7749,-118.2437 34.0522,-74.0060 40.7128,-74.0060 40.7128))', 2)
  [WKT_PARSE_ERROR] Error parsing WKT: Found non-closed ring at position 80 SQLSTATE: 22023

-- Resolution is out of range.
> SELECT h3_tessellateaswkb('POLYGON((-122.4194 37.7749,-118.2437 34.0522,-74.0060 40.7128,-122.4194 37.7749))', 16)
  [H3_INVALID_RESOLUTION_VALUE] H3 resolution 16 must be between 0 and 15, inclusive SQLSTATE: 22023