h3_tessellateaswkb fungsi

Berlaku untuk:check marked yes Databricks Runtime 14.2 ke atas

Mengembalikan tessellation geografi input menggunakan sel H3 pada resolusi yang ditentukan. Tessellation diwakili oleh ARRAY struktur, masing-masing mewakili elemen tessellation. Setiap elemen tesselulasi terdiri dari ID sel H3 (dinyatakan sebagai bilangan bulat panjang), nilai Boolean yang menunjukkan apakah geografi input sepenuhnya mencakup sel, dan nilai BINER yang sesuai dengan deskripsi WKB dari persimpangan geografi input dengan sel H3.

Sel H3 yang dikembalikan secara kolektif membentuk sekumpulan segi enam atau segi enam yang minimal, pada resolusi yang ditentukan, yang sepenuhnya mencakup geografi input. Geografi yang dikembalikan (melalui representasi WKB mereka) membentuk tessellation geografi input.

Sintaks

h3_tessellateaswkb ( geographyExpr, resolutionExpr )

Argumen

  • geographyExpr: Ekspresi BINER atau STRING yang mewakili geografi di WKB, WKT, atau GeoJSON. Geografi ini diharapkan memiliki koordinat bujur dan lintang dalam derajat yang mengacu pada sistem referensi koordinat WGS84 .
  • resolutionExpr: Ekspresi INT, dengan nilai antara 0 dan 15 inklusif, menentukan resolusi untuk ID sel H3.

Mengembalikan

ARRAY struktur bernama dengan tiga bidang jenis BIGINT, BOOLEAN, dan BINARY, masing-masing bernama cellid, core, dan chip, mewakili tesselasi geografi input dengan sel H3 pada resolusi yang ditentukan.

Bidang pertama dalam struktur adalah ID sel H3 (dinyatakan sebagai bilangan bulat panjang). Bidang kedua dalam struktur adalah nilai Boolean yang menunjukkan apakah sel H3 adalah sel inti, dalam hal ini nilai bidang adalah atau tidak, dalam hal ini true nilai bidang adalah false. Sel inti adalah sel H3 yang sepenuhnya dicakup oleh geografi input (yaitu, persimpangannya dengan geografi input adalah sel itu sendiri). Bidang ketiga adalah nilai BINER yang mewakili deskripsi WKB dari geografi yang merupakan persimpangan geografi input dan sel H3. Sel H3 yang dikembalikan secara kolektif membentuk sekumpulan geografi input yang mencakup minimal. Geografi, sesuai dengan deskripsi WKB yang dikembalikan, secara kolektif membentuk tessellation (dekomposisi) dari geografi input.

Fungsi mengembalikan NULL jika salah satu ekspresi input adalah NULL. Jika argumen input pertama berjenis BINARY, nilai input diharapkan menjadi deskripsi WKB dari titik, linestring, poligon, multipoint, multilinestring, atau multipolygon. Jika argumen input pertama berjenis STRING, nilai input diharapkan menjadi WKT atau deskripsi GeoJSON dari titik, linestring, poligon, multipoint, multilinestring, atau multipolygon. Dimensi geografi input dapat berupa 2D, 3DZ, 3DM, atau 4D.

Kondisi kesalahan

  • Jika geographyExpr berjenis BINARY dan nilainya adalah WKB yang tidak valid atau mewakili kumpulan geometri, fungsi mengembalikan WKB_PARSE_ERROR.
  • Jika geographyExpr berjenis STRING dan nilainya adalah WKT yang tidak valid atau mewakili kumpulan geometri, fungsi mengembalikan WKT_PARSE_ERROR.
  • Jika geographyExpr berjenis STRING dan nilainya adalah GeoJSON yang tidak valid atau mewakili kumpulan geometri, fungsi mengembalikan GEOJSON_PARSE_ERROR.
  • Jika resolutionExpr lebih kecil dari 0 atau lebih besar dari 15, fungsi mengembalikan H3_INVALID_RESOLUTION_VALUE.

Contoh

> 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