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


Функция h3_try_tessellateaswkb

Относится к:проверено и отмечено Databricks SQL проверено и отмечено Databricks Runtime 16.3 и выше

Эта функция ведет себя так же, как h3_tessellateaswkb, но возвращает NULL, а не ошибку, если функция не создает тесселяцию. Он возвращаеттесселяцию входной географии с помощью ячеек H3 в указанном разрешении. Тесселлация представлена ARRAY структурой, каждая из которых представляет элемент тесселяции. Каждый элемент тесселяции состоит из идентификатора ячейки H3 (BIGINT), логическое значение, указывающее, полностью ли входная география охватывает ячейку, и BINARY значение, соответствующее описанию WKB пересечения входной географии с ячейкой H3.

Синтаксис

h3_try_tessellateaswkb ( geographyExpr, resolutionExpr )

Аргументы

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

Возвраты

Именованные структуры ARRAY с тремя полями типа BIGINT, BOOLEAN и BINARY, называемыми cellid, core и chip соответственно, представляющие тесселяцию входного географического региона ячейками H3 на указанном уровне детализации.

Первое поле структуры — это идентификатор ячейки H3, представленный как .BIGINT Второе поле — это BOOLEAN значение, указывающее, является ли ячейка основной ячейкой. Основная ячейка — это ячейка, которая полностью содержится в входной географической области. Его пересечение с входными данными является полной ячейкой. Значение true для основных ячеек и false в противном случае. Третье поле — это BINARY значение, представляющее описание WKB географической области, которая является пересечением входной географической области и ячейки H3. Возвращаемые ячейки H3 вместе образуют минимальный набор покрытия входного географического региона. Географические области, соответствующие возвращаемым описаниям WKB, вместе образуют тесселлацию (декомпозицию) входной географической области.

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

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

  • Если значение resolutionExpr меньше 0 или больше 15, функция возвращает H3_INVALID_RESOLUTION_VALUE.

Примеры

> 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)
  null

-- Feeding an invalid WKB (invalid endianness value)
> SELECT h3_tessellateaswkb(unhex('020700000000'), 2)
  null

-- 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)
  null

-- 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