Udostępnij za pośrednictwem


Funkcja h3_polyfillash3string

Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime 11.3 LTS i nowsze

Zwraca tablicę identyfikatorów komórek H3 (reprezentowanych jako CIĄG), odpowiadających sześciokątom lub pentagonom określonej rozdzielczości, znajdujących się w geografii wejściowej.

Składnia

h3_polyfillash3string ( geographyExpr, resolutionExpr )

Argumenty

  • geographyExpr: wyrażenie BINARY lub STRING reprezentujące geografię arealną (wielobok lub multipolygon) w formacie WKB, WKT lub GeoJSON. Oczekuje się, że współrzędne geograficzne będą miały długość i szerokość geograficzną w stopniach, odnoszące się do systemu odniesienia współrzędnych WGS84.
  • resolutionExpr: Wyrażenie INT, którego wartość ma być między 0 i 15 inkluzywna, określając rozdzielczość identyfikatorów komórek H3.

Zwraca

Tablica wartości STRING odpowiadających identyfikatorom komórek H3 o określonej rozdzielczości, które znajdują się w wprowadzonej geografii arealnej.

Funkcja zwraca wartość NULL, jeśli dowolne z wyrażeń wejściowych ma wartość NULL. Jeśli pierwszym argumentem wejściowym jest typ BINARY, wartość wejściowa powinna być opisem wielokąta lub wielopolygonu. Jeśli pierwszym argumentem wejściowym jest typ STRING, wartość wejściowa powinna być opisana w formacie WKT lub GeoJSON jako wielokąt lub wielopoligon. Wymiar wielokąta wejściowego lub wielopolygonu może być 2D, 3DZ, 3DM lub 4D.

Warunki błędu

  • Jeśli geographyExpr jest typu BINARY, a wartość jest nieprawidłowym WKB lub nie reprezentuje wielokąta bądź wielopoligonu, funkcja zwraca WKB_PARSE_ERROR.
  • Jeśli geographyExpr jest typu STRING, a wartość jest nieprawidłową wartością WKT lub nie reprezentuje wielokąta lub wielopolygonu, funkcja zwraca WKT_PARSE_ERROR.
  • Jeśli geographyExpr jest typu STRING, a wartość jest nieprawidłową wartością GeoJSON lub nie reprezentuje wielokąta lub wielobiegu, funkcja zwraca GEOJSON_PARSE_ERROR.
  • Jeśli resolutionExpr jest mniejszy niż 0 lub większy niż 15, funkcja zwraca H3_INVALID_RESOLUTION_VALUE.

Przykłady

-- Simple example where the input is a triangle in WKT format.
> SELECT h3_polyfillash3string('POLYGON((-122.4194 37.7749,-118.2437 34.0522,-74.0060 40.7128,-122.4194 37.7749))', 2)
  [82268ffffffffff,82269ffffffffff,822987fffffffff,8226e7fffffffff,822997fffffffff,8226f7fffffffff,822657fffffffff,8229affffffffff]

-- Simple example where the input is a triangle in hexadecimal WKB format.
> SELECT h3_polyfillash3string(unhex('0103000000010000000400000050fc1873d79a5ec0d0d556ec2fe342404182e2c7988f5dc0f46c567dae064140aaf1d24d628052c05e4bc8073d5b444050fc1873d79a5ec0d0d556ec2fe34240'), 2)
  [82268ffffffffff,82269ffffffffff,822987fffffffff,8226e7fffffffff,822997fffffffff,8226f7fffffffff,822657fffffffff,8229affffffffff]

-- Feeding an empty linestring in GeoJSON format (as opposed to a polygon or multipolygon).
> SELECT h3_polyfillash3string('{"type":"LineString","coordinates":[]}', 2)
  [GEOJSON_PARSE_ERROR] Error parsing GeoJSON: Invalid or unsupported type '"LineString"' at position 9

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

-- Feeding an invalid polygon in WKT (polygon is not closed)
> SELECT h3_polyfillash3string('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

-- Resolution is out of range.
> SELECT h3_polyfillash3string('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