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


Функция h3_try_polyfillash3

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

Ведет себя так же, как h3_polyfillash3, за исключением того, что значение NULL возвращается вместо ошибки, если первый аргумент недопустим. Точнее, возвращает массив идентификаторов ячеек H3 (представленных как BIGINT), соответствующих шестнадцатеричным или пентагонам, указанного разрешения, которые содержатся входными данными являются географическими.

Синтаксис

h3_try_polyfillash3 ( geographyExpr, resolutionExpr )

Аргументы

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

Возвраты

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

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

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

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

Примеры

-- Simple example where the input is a triangle in WKT format.
> SELECT h3_try_polyfillash3('POLYGON((-122.4194 37.7749,-118.2437 34.0522,-74.0060 40.7128,-122.4194 37.7749))', 2)
  [586146350232502271,586147449744130047,586198577034821631,586152397546455039,586199676546449407,586153497058082815,586142501941805055,586201325813891071]

-- Simple example where the input is a triangle in hexadecimal WKB format.
> SELECT h3_try_polyfillash3(unhex('0103000000010000000400000050fc1873d79a5ec0d0d556ec2fe342404182e2c7988f5dc0f46c567dae064140aaf1d24d628052c05e4bc8073d5b444050fc1873d79a5ec0d0d556ec2fe34240'), 2)
  [586146350232502271,586147449744130047,586198577034821631,586152397546455039,586199676546449407,586153497058082815,586142501941805055,586201325813891071]

-- The input is invalid.
> SELECT h3_try_polyfillash3('Not-a-valid-rep', 2)
  null

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