Skip to main content
Skip to main content
Edit this page

Функции для работы с индексами H3

H3 — это система геокодирования, которая делит поверхность Земли на равные шестиугольные ячейки. Система поддерживает иерархию (вложенность) ячеек, т.е. каждый "родительский" шестиугольник может быть поделен на семь одинаковых вложенных "дочерних" шестиугольников, и так далее.

Уровень вложенности называется "разрешением" и может принимать значение от 0 до 15, где 0 соответствует "базовым" ячейкам самого верхнего уровня (наиболее крупным).

Для каждой точки, имеющей широту и долготу, можно получить 64-битный индекс H3, соответствующий номеру шестриугольной ячейки, где эта точка находится.

Индексы H3 используются, в основном, для геопозиционирования и расчета расстояний.

h3IsValid

Проверяет корректность H3-индекса.

Синтаксис

Параметр

  • h3index — идентификатор шестриугольника. Тип данных: UInt64.

Возвращаемые значения

  • 1 — число является H3-индексом.
  • 0 — число не является H3-индексом.

Тип: UInt8.

Пример

Запрос:

Результат:

h3GetResolution

Извлекает разрешение H3-индекса.

Синтаксис

Параметр

  • h3index — идентификатор шестиугольника. Тип данных: UInt64.

Возвращаемые значения

  • Разрешение сетки. Диапазон значений: [0, 15].
  • Для несуществующего идентификатора может быть возвращено произвольное значение. Используйте h3IsValid для проверки идентификаторов.

Тип: UInt8.

Пример

Запрос:

Результат:

h3EdgeAngle

Рассчитывает средний размер стороны шестиугольника H3 в градусах.

Синтаксис

Параметр

  • resolution — требуемое разрешение индекса. Тип данных: UInt8. Диапазон возможных значений: [0, 15].

Возвращаемое значение

  • Средняя длина стороны шестиугольника H3 в градусах. Тип данных: Float64.

Пример

Запрос:

Результат:

h3EdgeLengthM

Рассчитывает средний размер стороны шестиугольника H3 в метрах.

Синтаксис

Параметр

  • resolution — требуемое разрешение индекса. Тип данных — UInt8. Диапазон возможных значений — [0, 15].

Возвращаемое значение

  • Средняя длина стороны шестиугольника H3 в метрах, тип — Float64.

Пример

Запрос:

Результат:

geoToH3

Возвращает H3 индекс точки (lon, lat) с заданным разрешением.

Синтаксис

Аргументы

  • lon — географическая долгота. Тип данных — Float64.
  • lat — географическая широта. Тип данных — Float64.
  • resolution — требуемое разрешение индекса. Тип данных — UInt8. Диапазон возможных значений — [0, 15].

Возвращаемые значения

  • Порядковый номер шестиугольника.
  • 0 в случае ошибки.

Тип данных: UInt64.

Пример

Запрос:

Результат:

h3ToGeo

Возвращает географические координаты долготы и широты центра шестиугольника, соответствующие указанному H3-индексу.

Синтаксис

Аргументы

Возвращаемые значения

  • кортеж из двух значений: tuple(lon,lat), где lon — долгота Float64, lat — широта Float64.

Пример

Запрос:

Результат:

h3ToGeoBoundary

Возвращает массив пар (lon, lat), который соответствует границе указанного H3 индекса.

Синтаксис

Аргументы

  • h3Index — H3 индекс. Тип: UInt64.

Возвращаемые значения

Пример

Запрос:

Результат:

h3kRing

Возвращает H3-индексы шестиугольника в радиусе k от данного в произвольном порядке.

Синтаксис

Аргументы

  • h3index — идентификатор шестиугольника. Тип данных: UInt64.
  • k — радиус. Тип данных: целое число

Возвращаемые значения

  • Массив из H3-индексов.

Тип данных: Array(UInt64).

Пример

Запрос:

Результат:

h3GetBaseCell

Определяет номер базовой (верхнеуровневой) шестиугольной H3-ячейки для указанной ячейки.

Синтаксис

Параметр

  • index — индекс шестиугольной ячейки. Тип: UInt64.

Возвращаемое значение

  • Индекс базовой шестиугольной ячейки.

Тип: UInt8.

Пример

Запрос:

Результат:

h3HexAreaM2

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

Синтаксис

Параметр

  • resolution — разрешение. Диапазон: [0, 15]. Тип: UInt8.

Возвращаемое значение

  • Площадь в квадратных метрах. Тип: Float64.

Пример

Запрос:

Результат:

h3IndexesAreNeighbors

Определяет, являются ли H3-ячейки соседями.

Синтаксис

Аргументы

  • index1 — индекс шестиугольной ячейки. Тип: UInt64.
  • index2 — индекс шестиугольной ячейки. Тип: UInt64.

Возвращаемое значение

  • 1 — ячейки являются соседями.
  • 0 — ячейки не являются соседями.

Тип: UInt8.

Пример

Запрос:

Результат:

h3ToChildren

Формирует массив дочерних (вложенных) H3-ячеек для указанной ячейки.

Синтаксис

Аргументы

  • index — индекс шестиугольной ячейки. Тип: UInt64.
  • resolution — разрешение. Диапазон: [0, 15]. Тип: UInt8.

Возвращаемое значение

  • Массив дочерних H3-ячеек.

Тип: Array(UInt64).

Пример

Запрос:

Результат:

h3ToParent

Определяет родительскую (более крупную) H3-ячейку, содержащую указанную ячейку.

Синтаксис

Аргументы

  • index — индекс шестиугольной ячейки. Тип: UInt64.
  • resolution — разрешение. Диапазон: [0, 15]. Тип: UInt8.

Возвращаемое значение

  • Индекс родительской H3-ячейки.

Тип: UInt64.

Пример

Запрос:

Результат:

h3ToString

Преобразует H3-индекс из числового представления H3Index в строковое.

Параметр

  • index — индекс шестиугольной ячейки. Тип: UInt64.

Возвращаемое значение

  • Строковое представление H3-индекса.

Тип: String.

Пример

Запрос:

Результат:

stringToH3

Преобразует H3-индекс из строкового представления в числовое представление H3Index.

Синтаксис

Параметр

  • index_str — строковое представление H3-индекса. Тип: String.

Возвращаемое значение

  • Числовое представление индекса шестиугольной ячейки.
  • 0, если при преобразовании возникла ошибка.

Тип: UInt64.

Пример

Запрос:

Результат:

h3GetResolution

Определяет разрешение H3-ячейки.

Синтаксис

Параметр

  • index — индекс шестиугольной ячейки. Тип: UInt64.

Возвращаемое значение

  • Разрешение ячейки. Диапазон: [0, 15].

Тип: UInt8.

Пример

Запрос:

Результат:

h3IsResClassIII

Проверяет, имеет ли индекс H3 разрешение с ориентацией Class III.

Синтаксис

Параметр

  • index — порядковый номер шестиугольника. Тип: UInt64.

Возвращаемые значения

  • 1 — индекс имеет разрешение с ориентацией Class III.
  • 0 — индекс не имеет разрешения с ориентацией Class III.

Тип: UInt8.

Пример

Запрос:

Результат:

h3IsPentagon

Проверяет, является ли указанный индекс H3 пятиугольной ячейкой.

Синтаксис

Параметр

  • index — порядковый номер шестиугольника. Тип: UInt64.

Возвращаемые значения

  • 1 — индекс представляет собой пятиугольную ячейку.
  • 0 — индекс не является пятиугольной ячейкой.

Тип: UInt8.

Пример

Запрос:

Результат:

h3GetFaces

Возвращает все грани многоугольника (икосаэдра), пересекаемые заданным H3 индексом.

Синтаксис

Параметр

  • index — индекс шестиугольной ячейки. Тип: UInt64.

Возвращаемое значение

  • Массив, содержащий грани многоугольника (икосаэдра), пересекаемые заданным H3 индексом.

Тип: Array(UInt64).

Пример

Запрос:

Результат: