Перейти к основному содержанию

индекс 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 для однонаправленного ребра на основе указанных исходной ячейки и пункта назначения; в случае ошибки возвращает 0. Синтаксис
Параметр
  • originIndex — Номер шестиугольного индекса исходной ячейки. UInt64.
  • destinationIndex — Номер шестиугольного индекса целевой ячейки. UInt64.
Возвращаемое значение
  • Номер шестиугольного индекса однонаправленного ребра. UInt64.
Пример
Query
Response

h3UnidirectionalEdgeIsValid

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

h3GetOriginIndexFromUnidirectionalEdge

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

h3GetDestinationIndexFromUnidirectionalEdge

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

h3GetIndexesFromUnidirectionalEdge

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

h3GetUnidirectionalEdgesFromHexagon

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

h3GetUnidirectionalEdgeBoundary

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