Skip to main content

индекс H3

H3 — это система географической индексации, в которой поверхность Земли разбита на сетку из одинаковых шестиугольных ячеек. Эта система иерархична, то есть каждый шестиугольник верхнего уровня (parent) может быть разделён на семь таких же, но меньших (children), и так далее. Уровень иерархии называется resolution и может принимать значения от 0 до 15, где 0 — это уровень base с самыми большими и самыми грубыми ячейками. Пару широты и долготы можно преобразовать в 64-битный индекс H3, который идентифицирует ячейку сетки. Индекс H3 в основном используется для группировки местоположений по бакетам и других геопространственных преобразований. Полное описание системы H3 доступно на сайте Uber Engineering.

h3IsValid

Проверяет, является ли число корректным индексом H3. Синтаксис
Параметр
  • h3index — Номер шестиугольного индекса. UInt64.
Возвращаемые значения
  • 1 — Число является корректным индексом H3. UInt8.
  • 0 — Число не является корректным индексом H3. UInt8.
Пример
Query
Response

h3GetResolution

Определяет разрешение для указанного H3-индекса. Синтаксис
Параметр
  • h3index — номер шестиугольного индекса. UInt64.
Возвращаемые значения
  • Разрешение индекса. Диапазон: [0, 15]. UInt8.
  • Если индекс некорректен, функция возвращает случайное значение. Используйте h3IsValid, чтобы проверить индекс. UInt8.
Пример
Query
Response

h3EdgeAngle

Вычисляет среднюю длину ребра H3-шестиугольника в градах. Синтаксис
Параметр
  • resolution — разрешение индекса. UInt8. Диапазон: [0, 15].
Возвращаемые значения
  • Средняя длина ребра шестиугольника H3 в градах. Float64.
Пример
Query
Response

h3EdgeLengthM

Вычисляет среднюю длину ребра шестиугольника H3 в метрах. Синтаксис
Параметр
  • resolution — разрешение индекса. UInt8. Диапазон: [0, 15].
Возвращаемые значения
  • Средняя длина ребра H3-шестиугольника в метрах. Float64.
Пример
Query
Response

h3EdgeLengthKm

Вычисляет среднюю длину ребра шестиугольника H3 в километрах. Синтаксис
Параметр
  • resolution — разрешение индекса. UInt8. Диапазон: [0, 15].
Возвращаемые значения
  • Средняя длина ребра шестиугольника H3 в километрах. Float64.
Пример
Query
Response

geoToH3

Возвращает индекс точки H3 (lat, lon) с указанным разрешением. Синтаксис
Аргументы
  • lat — Широта. Float64.
  • lon — Долгота. Float64.
  • resolution — Разрешение индекса. Диапазон: [0, 15]. UInt8.
Возвращаемые значения
  • Номер шестиугольного индекса. UInt64.
  • 0 в случае ошибки. UInt64.
Примечание: в ClickHouse v25.4 и более ранних версиях geoToH3() принимает значения в порядке (lon, lat). Начиная с ClickHouse v25.5, входные значения принимаются в порядке (lat, lon). Предыдущее поведение можно восстановить с помощью настройки geotoh3_argument_order = 'lon_lat'. Пример
Query
Response

h3ToGeo

Возвращает широту и долготу центра, соответствующие указанному индексу H3. Синтаксис
Аргументы
  • h3Index — индекс H3. UInt64.
Возвращаемые значения
  • Кортеж из двух значений: tuple(lat,lon). lat — широта. Float64. lon — долгота. Float64.
Примечание: в ClickHouse v24.12 и более ранних версиях h3ToGeo() возвращает значения в порядке (lon, lat). Начиная с ClickHouse v25.1, возвращаемые значения идут в порядке (lat, lon). Предыдущее поведение можно восстановить с помощью настройки h3togeo_lon_lat_result_order = true. Пример
Query
Response

h3ToGeoBoundary

Возвращает массив пар (lat, lon), соответствующий границе указанного индекса H3. Синтаксис
Аргументы
  • h3Index — индекс H3. UInt64.
Возвращаемые значения Пример
Query
Response

h3kRing

Перечисляет все H3 шестиугольники, расположенные в радиусе k от заданного шестиугольника, в случайном порядке. Синтаксис
Аргументы
  • h3index — номер шестиугольного индекса. UInt64.
  • k — радиус. integer
Возвращаемые значения Пример
Query
Response

h3PolygonToCells

Возвращает шестиугольники (с указанным разрешением), содержащиеся в заданной геометрии: ring или (multi-)polygon. Синтаксис
Аргументы Возвращаемые значения
  • Массив содержащихся индексов H3. Array(UInt64).
Пример
Query
Response

h3PolygonToCellsWithContainment

Возвращает шестиугольники (с указанным разрешением), покрывающие переданную геометрию — Ring или (multi-)polygon, — с использованием экспериментальных режимов покрытия H3. Эта функция сопоставляет flags с режимами покрытия H3:
  • 0CONTAINMENT_CENTER
  • 1CONTAINMENT_FULL
  • 2CONTAINMENT_OVERLAPPING
  • 3CONTAINMENT_OVERLAPPING_BBOX
Синтаксис
Аргументы
  • geometry может быть одним из следующих гео-типов данных или их базовых примитивных типов:
  • resolution — разрешение индекса. Диапазон: [0, 15]. UInt8.
  • flags — режим покрытия. Диапазон: [0, 3]. Используйте целочисленные литералы, такие как 0, 1, 2 и 3, или значения UInt32 (например, toUInt32(2)). Значения передаются в H3 API как UInt32. Другие встроенные целочисленные типы преобразуются с помощью точного приведения типов.
Возвращаемые значения
  • Массив индексов H3 в соответствии с выбранным режимом покрытия. Array(UInt64).
Пример
Query
Response

h3GetBaseCell

Возвращает номер базовой ячейки индекса H3. Синтаксис
Параметр
  • index — номер шестиугольного индекса. UInt64.
Возвращаемое значение
  • Номер базовой ячейки шестиугольника. UInt8.
Пример
Query
Response

h3HexAreaM2

Возвращает среднюю площадь шестиугольника в квадратных метрах для заданного разрешения. Синтаксис
Параметр
  • resolution — Разрешение индекса. Диапазон: [0, 15]. UInt8.
Возвращаемое значение
  • Площадь в квадратных метрах. Float64.
Пример
Query
Response

h3HexAreaKm2

Возвращает среднюю площадь шестиугольника в квадратных километрах для заданного разрешения. Синтаксис
Параметр
  • resolution — разрешение индекса. Диапазон: [0, 15]. UInt8.
Возвращаемое значение
  • Площадь в квадратных километрах. Float64.
Пример
Query
Response

h3IndexesAreNeighbors

Возвращает, являются ли указанные индексы H3 соседними. Синтаксис
Аргументы
  • index1 — Номер шестиугольного индекса. UInt64.
  • index2 — Номер шестиугольного индекса. UInt64.
Возвращаемое значение
  • 1 — Индексы являются соседями. UInt8.
  • 0 — Индексы не являются соседями. UInt8.
Пример
Query
Response

h3ToChildren

Возвращает массив дочерних индексов для заданного индекса H3. Синтаксис
Аргументы
  • index — Номер шестиугольного индекса. UInt64.
  • resolution — Разрешение индекса. Диапазон: [0, 15]. UInt8.
Возвращаемые значения
  • Массив дочерних H3-индексов. Array(UInt64).
Пример
Query
Response

h3ToParent

Возвращает родительский индекс более общего уровня, содержащий указанный индекс H3. Синтаксис
Аргументы
  • index — Номер шестиугольного индекса. UInt64.
  • resolution — Разрешение индекса. Диапазон: [0, 15]. UInt8.
Возвращаемое значение
  • Родительский индекс H3. UInt64.
Пример
Query
Response

h3ToString

Преобразует представление индекса H3Index в строковое представление.
Параметр
  • index — номер шестиугольного индекса. UInt64.
Возвращаемое значение
  • Строковое представление индекса H3. String.
Пример
Query
Response

stringToH3

Преобразует строковое представление в формат H3Index (UInt64). Синтаксис
Параметр
  • index_str — Строковое представление индекса H3. String.
Возвращаемое значение
  • Номер шестиугольного индекса. При ошибке возвращает 0. UInt64.
Пример
Query
Response

h3GetResolution

Возвращает разрешение индекса H3. Синтаксис
Параметр
  • index — номер шестиугольного индекса. UInt64.
Возвращаемое значение
  • Разрешение индекса. Диапазон: [0, 15]. UInt8.
Пример
Query
Response

h3IsResClassIII

Возвращает, имеет ли H3 индекс разрешение с ориентацией класса III. Синтаксис
Параметр
  • index — номер шестиугольного индекса. UInt64.
Возвращаемое значение
  • 1 — индекс относится к разрешению с ориентацией Class III. UInt8.
  • 0 — индекс не относится к разрешению с ориентацией Class III. UInt8.
Пример
Query
Response

h3IsPentagon

Возвращает, является ли этот индекс H3 пятиугольной ячейкой. Синтаксис
Параметр
  • index — номер шестиугольного индекса. UInt64.
Возвращаемое значение
  • 1 — индекс соответствует пятиугольной ячейке. UInt8.
  • 0 — индекс не соответствует пятиугольной ячейке. UInt8.
Пример
Query
Response

h3GetFaces

Возвращает грани икосаэдра, с которыми пересекается указанный индекс H3. Синтаксис
Параметр
  • index — номер шестиугольного индекса. UInt64.
Возвращаемые значения
  • Array(UInt64) — массив граней икосаэдра, с которыми пересекается указанный индекс H3.
Пример
Query
Response

h3CellAreaM2

Возвращает точную площадь конкретной ячейки в квадратных метрах для указанного индекса H3. Синтаксис
Параметр
  • index — номер шестиугольного индекса. UInt64.
Возвращаемое значение
  • Площадь ячейки в квадратных метрах. Float64.
Пример
Query
Response

h3CellAreaRads2

Возвращает точную площадь заданной ячейки в квадратных радианах для указанного индекса H3. Синтаксис
Параметр
  • index — номер шестиугольного индекса. UInt64.
Возвращаемое значение
  • Площадь ячейки в квадратных радианах. Float64.
Пример
Query
Response

h3ToCenterChild

Возвращает центральный дочерний (более детализированный) H3 индекс, входящий в заданный H3, на указанном разрешении. Синтаксис
Параметры
  • index — номер шестиугольного индекса. UInt64.
  • resolution — разрешение индекса. Диапазон: [0, 15]. UInt8.
Возвращаемые значения
  • Индекс H3 центральной дочерней ячейки, содержащейся в указанном индексе H3 при заданном разрешении. UInt64.
Пример
Query
Response

h3ExactEdgeLengthM

Возвращает точную длину однонаправленного ребра, представленного входным индексом H3, в метрах. Синтаксис
Параметр
  • index — номер шестиугольного индекса. UInt64.
Возвращаемое значение
  • Точная длина ребра в метрах. Float64.
Пример
Query
Response

h3ExactEdgeLengthKm

Возвращает точную длину однонаправленного ребра, представленного переданным индексом H3, в километрах. Синтаксис
Параметр
  • index — Номер шестиугольного индекса. UInt64.
Возвращаемое значение
  • Точная длина ребра в километрах. Float64.
Пример
Query
Response

h3ExactEdgeLengthRads

Возвращает точную длину однонаправленного ребра, представленного входным индексом H3, в радианах. Синтаксис
Параметр
  • index — номер шестиугольного индекса. UInt64.
Возвращаемое значение
  • Точная длина ребра в радианах. Float64.
Пример
Query
Response

h3NumHexagons

Возвращает количество уникальных индексов H3 для заданного разрешения. Синтаксис
Параметр
  • resolution — разрешение индекса. Диапазон: [0, 15]. UInt8.
Возвращаемое значение
  • Количество индексов H3. Int64.
Пример
Query
Response

h3PointDistM

Возвращает расстояние в метрах по “дуге большого круга” или по формуле “гаверсинуса” между парами точек GeoCoord (широта/долгота). Синтаксис
Аргументы
  • lat1, lon1 — широта и долгота точки 1 в градусах. Float64.
  • lat2, lon2 — широта и долгота точки 2 в градусах. Float64.
Возвращаемые значения
  • Расстояние по гаверсинусу или расстояние по дуге большого круга в метрах. Float64.
Пример
Query
Response

h3PointDistKm

Возвращает расстояние в километрах между парами точек GeoCoord (широта/долгота), вычисленное по “дуге большого круга” или по формуле “гаверсинуса”. Синтаксис
Аргументы
  • lat1, lon1 — широта и долгота точки 1 в градусах. Float64.
  • lat2, lon2 — широта и долгота точки 2 в градусах. Float64.
Возвращаемые значения
  • Расстояние, вычисленное по гаверсинусу или по дуге большого круга, в километрах. Float64.
Пример
Query
Response

h3PointDistRads

Возвращает расстояние между парами точек GeoCoord (широта/долгота), вычисленное по дуге большого круга или по формуле гаверсинуса, в радианах. Синтаксис
Аргументы
  • lat1, lon1 — широта и долгота точки 1 в градусах. Float64.
  • lat2, lon2 — широта и долгота точки 2 в градусах. Float64.
Возвращаемые значения
  • Расстояние по формуле гаверсинуса или длина дуги большого круга в радианах. Float64.
Пример
Query
Response

h3GetRes0Indexes

Возвращает массив всех индексов H3 нулевого разрешения. Синтаксис
Возвращаемые значения
  • Массив всех индексов H3 с разрешением 0. Array(UInt64).
Пример
Query
Response

h3GetPentagonIndexes

Возвращает все пятиугольные индексы H3 при указанном разрешении. Синтаксис
Параметр
  • resolution — разрешение индекса. Диапазон: [0, 15]. UInt8.
Возвращаемое значение
  • Массив всех пятиугольных индексов H3. Array(UInt64).
Пример
Query
Response

h3Line

Возвращает линию, соединяющую два указанных индекса. Синтаксис
Параметры
  • start — Номер шестиугольного индекса, представляющий начальную точку. UInt64.
  • end — Номер шестиугольного индекса, представляющий конечную точку. UInt64.
Возвращаемое значение Массив индексов H3, представляющих линию между двумя указанными индексами. Array(UInt64). Пример
Query
Response

h3Distance

Возвращает расстояние между двумя указанными индексами в ячейках сетки. Синтаксис
Параметр
  • start — номер шестиугольного индекса, обозначающий начальную точку. UInt64.
  • end — номер шестиугольного индекса, обозначающий конечную точку. UInt64.
Возвращаемое значение
  • Количество ячеек сетки. Int64.
Возвращает отрицательное число, если определить расстояние не удаётся. Пример
Query
Response

h3HexRing

Возвращает индексы шестиугольного кольца длины k с центром в указанном исходном h3Index. Возвращает 0, если пентагональных искажений не обнаружено. Синтаксис
Параметр
  • index — Номер шестиугольного индекса, представляющий исходную ячейку. UInt64.
  • k — Расстояние. UInt64.
Возвращаемые значения Пример
Query
Response

h3GetUnidirectionalEdge

Возвращает индекс H3 однонаправленного ребра для двух соседних индексов ячеек H3 (исходной и целевой). Генерирует исключение, если хотя бы один из входных индексов не является допустимой ячейкой H3 (это поведение регулируется настройкой functions_h3_default_if_invalid). Для допустимых ячеек H3, не являющихся соседними (в том числе при указании одной и той же ячейки дважды), возвращает 0. Синтаксис
Параметр
  • originIndex — Номер шестиугольного индекса исходной ячейки. UInt64.
  • destinationIndex — Номер шестиугольного индекса целевой ячейки. UInt64.
Возвращаемое значение
  • Номер шестиугольного индекса однонаправленного ребра. UInt64.
Пример
Query
Response

h3UnidirectionalEdgeIsValid

Проверяет, является ли указанный H3Index корректным индексом однонаправленного ребра. Возвращает 1, если это однонаправленное ребро, и 0 в противном случае. Синтаксис
Параметр
  • index — Номер шестиугольного индекса. UInt64.
Возвращаемое значение
  • 1 — Индекс H3 является валидным однонаправленным ребром. UInt8.
  • 0 — Индекс H3 не является валидным однонаправленным ребром. UInt8.
Пример
Query
Response

h3GetOriginIndexFromUnidirectionalEdge

Возвращает индекс исходного шестиугольника по H3Index однонаправленного ребра. Генерирует исключение, если входное значение не является допустимым направленным ребром (управляется настройкой functions_h3_default_if_invalid); возвращает 0, только если эта настройка включена. Синтаксис
Параметр
  • edge — номер шестиугольного индекса, представляющего однонаправленное ребро. UInt64.
Возвращаемое значение
  • Номер шестиугольного индекса исходной ячейки. UInt64.
  • По умолчанию генерирует исключение INCORRECT_DATA для недопустимых направленных рёбер; возвращает 0, если functions_h3_default_if_invalid = 1.
Пример
Query
Response

h3GetDestinationIndexFromUnidirectionalEdge

Возвращает индекс шестиугольника пункта назначения по однонаправленному ребру H3Index. Генерирует исключение, если входное значение не является допустимым ориентированным ребром (поведение определяется настройкой functions_h3_default_if_invalid); возвращает 0, только если эта настройка включена. Синтаксис
Параметр
  • edge — номер шестиугольного индекса, представляющего однонаправленное ребро. UInt64.
Возвращаемое значение
  • Номер шестиугольного индекса целевой ячейки. UInt64.
  • По умолчанию генерирует исключение INCORRECT_DATA для недопустимых направленных рёбер; возвращает 0, если functions_h3_default_if_invalid = 1.
Пример
Query
Response

h3GetIndexesFromUnidirectionalEdge

Возвращает индексы исходного шестиугольника и шестиугольника в пункте назначения для указанного H3Index однонаправленного ребра. Синтаксис
Параметр
  • edge — номер шестиугольного индекса, который представляет однонаправленное ребро. UInt64.
Возвращаемое значение Кортеж, состоящий из двух значений tuple(origin,destination):
  • origin — номер шестиугольного индекса исходной ячейки. UInt64.
  • destination — номер шестиугольного индекса целевой ячейки. UInt64.
Генерирует исключение, если переданное значение не является допустимым направленным ребром (это регулируется настройкой functions_h3_default_if_invalid); возвращает (0,0) только при включённой этой настройке. Пример
Query
Response

h3GetUnidirectionalEdgesFromHexagon

Возвращает все однонаправленные рёбра для указанного H3Index. Генерирует исключение, если входное значение не является допустимой ячейкой H3 (это регулируется настройкой functions_h3_default_if_invalid); возвращает пустой массив только при включённой настройке. Синтаксис
Параметр
  • index — номер шестиугольного индекса, соответствующий ячейке. UInt64.
Возвращаемое значение
  • Массив индексов H3, представляющих каждое однонаправленное ребро. Array(UInt64).
  • По умолчанию генерирует исключение INCORRECT_DATA для недопустимых ячеек; возвращает [], когда functions_h3_default_if_invalid = 1.
Пример
Query
Response

h3GetUnidirectionalEdgeBoundary

Возвращает координаты, задающие однонаправленное ребро. Генерирует исключение, если входное значение не является допустимым направленным ребром (это регулируется настройкой functions_h3_default_if_invalid); возвращает пустой массив только при включённой настройке. Синтаксис
Параметр
  • index — номер шестиугольного индекса, представляющий однонаправленное ребро. UInt64.
Возвращаемое значение
  • Массив пар ‘(lat, lon)’. Array(Float64, Float64).
  • По умолчанию генерирует исключение INCORRECT_DATA для недопустимых направленных рёбер; возвращает [], когда functions_h3_default_if_invalid = 1.
Пример
Query
Response
Последнее изменение 14 августа 2026 г.