Поделиться через


Функция h3_coverash3string

Область применения:флажок Databricks SQL флажок Databricks Runtime 13.3 LTS и выше

Возвращает массив строковых значений, представляющих идентификаторы ячеек H3. Эти значения соответствуют минимальному набору шестиугольников или пентагонов, заданного разрешения, полностью охватывающему заданную линейную или площадную географию.

Синтаксис

h3_coverash3 ( geographyExpr, resolutionExpr )

Аргументы

  • geographyExpr: выражение BINARY или STRING, представляющее линейную (линейный элемент или многолинейный элемент) или площадную (полигон или многополигон) географию в WKB, WKT или GeoJSON. Ожидается, что география будет иметь координаты долготы и широты в градусах в системе координат WGS84.
  • resolutionExpr: выражение INT со значением между 0 и 15 включительно, указывающее разрядность идентификаторов ячеек H3.

Возвраты

Массив строковых значений, соответствующих минимальному набору идентификаторов ячеек H3 заданного разрешения, которые полностью покрывают входной линейный или территориальный объект.

Функция возвращается NULL , если какой-либо из входных выражений имеет значение NULL. Если первый входной аргумент имеет тип BINARY, входное значение должно быть WKB описанием линии, многоугольника, многострочного или разбитого многоугольника. Если первый входной аргумент имеет тип STRING, входное значение должно быть либо WKT, либо описание GeoJSON линии, многоугольника, многолинейного, или многоугольника. Измерение входной линейной строки, многоугольника, многолинейной строки или сложного многоугольника может быть 2D, 3DZ, 3DM или 4D.

Условия ошибок

  • Если geographyExpr имеет тип BINARY, и значение является недопустимым WKB или не представляет линию, многоугольник, мультилинию или многомногоугольник, функция возвращает WKB_PARSE_ERROR.
  • Если geographyExpr имеет тип STRING и значение является недопустимым WKT или не представляет линию, полигон, многолинейный или многополигон, функция возвращает WKT_PARSE_ERROR.
  • Если geographyExpr имеет тип STRING и значение является недопустимым GeoJSON или не представляет собой строку линии, многоугольник, многостроку или многомногоугольник, функция возвращает GEOJSON_PARSE_ERROR.
  • Если значение resolutionExpr меньше 0 или больше 15, функция возвращает H3_INVALID_RESOLUTION_VALUE.

Примеры

-- Simple example where the input is a triangle in WKT format.
> SELECT h3_coverash3string('POLYGON((-122.4194 37.7749,-118.2437 34.0522,-74.0060 40.7128,-122.4194 37.7749))', 0)
  [8027fffffffffff,8029fffffffffff,802bfffffffffff,8049fffffffffff]

-- Simple example where the input is a triangle in hexadecimal WKB format.
> SELECT h3_coverash3string(unhex('0103000000010000000400000050fc1873d79a5ec0d0d556ec2fe342404182e2c7988f5dc0f46c567dae064140aaf1d24d628052c05e4bc8073d5b444050fc1873d79a5ec0d0d556ec2fe34240'), 0)
  [8027fffffffffff,8029fffffffffff,802bfffffffffff,8049fffffffffff]

-- Simple example where the input is a linestring in GeoJSON format.
SELECT h3_coverash3string('{"type":"LineString","coordinates":[[-122.4194,37.7749],[-118.2437,34.0522],[-74.0060,40.7128]]}', 1)
  [8148fffffffffff, 8129bffffffffff, 812a3ffffffffff, 812abffffffffff, 81267ffffffffff, 8126fffffffffff, 81283ffffffffff]

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

-- Feeding an invalid WKB (invalid endianness value)
> SELECT h3_coverash3string(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_coverash3string('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_coverash3string('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