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

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

H3 индекс

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

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

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

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

Полное описание системы H3 доступно на сайте Uber Engineering.

h3IsValid

Проверяет, является ли число действительным H3 индексом.

Синтаксис

h3IsValid(h3index)

Параметр

  • h3index — номер индекса шестиугольника. UInt64.

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

  • 1 — число является действительным H3 индексом. UInt8.
  • 0 — число не является действительным H3 индексом. UInt8.

Пример

Запрос:

SELECT h3IsValid(630814730351855103) AS h3IsValid;

Результат:

┌─h3IsValid─┐
│         1 │
└───────────┘

h3GetResolution

Определяет разрешение данного H3 индекса.

Синтаксис

h3GetResolution(h3index)

Параметр

  • h3index — номер индекса шестиугольника. UInt64.

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

  • Разрешение индекса. Диапазон: [0, 15]. UInt8.
  • Если индекс недействителен, функция возвращает случайное значение. Используйте h3IsValid для проверки индекса. UInt8.

Пример

Запрос:

SELECT h3GetResolution(639821929606596015) AS resolution;

Результат:

┌─resolution─┐
│         14 │
└────────────┘

h3EdgeAngle

Вычисляет среднюю длину ребра H3 шестиугольника в градусах.

Синтаксис

h3EdgeAngle(resolution)

Параметр

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

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

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

Пример

Запрос:

SELECT h3EdgeAngle(10) AS edgeAngle;

Результат:

┌───────h3EdgeAngle(10)─┐
│ 0.0005927224846720883 │
└───────────────────────┘

h3EdgeLengthM

Вычисляет среднюю длину ребра H3 шестиугольника в метрах.

Синтаксис

h3EdgeLengthM(resolution)

Параметр

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

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

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

Пример

Запрос:

SELECT h3EdgeLengthM(15) AS edgeLengthM;

Результат:

┌─edgeLengthM─┐
│ 0.509713273 │
└─────────────┘

h3EdgeLengthKm

Вычисляет среднюю длину ребра H3 шестиугольника в километрах.

Синтаксис

h3EdgeLengthKm(resolution)

Параметр

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

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

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

Пример

Запрос:

SELECT h3EdgeLengthKm(15) AS edgeLengthKm;

Результат:

┌─edgeLengthKm─┐
│  0.000509713 │
└──────────────┘

geoToH3

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

Синтаксис

geoToH3(lat, lon, resolution)

Аргументы

  • 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'.

Пример

Запрос:

SELECT geoToH3(55.71290588, 37.79506683, 15) AS h3Index;

Результат:

┌────────────h3Index─┐
│ 644325524701193974 │
└────────────────────┘

h3ToGeo

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

Синтаксис

h3ToGeo(h3Index)

Аргументы

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

Пример

Запрос:

SELECT h3ToGeo(644325524701193974) AS coordinates;

Результат:

┌─coordinates───────────────────────────┐
│ (55.71290243145668,37.79506616830252) │
└───────────────────────────────────────┘

h3ToGeoBoundary

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

Синтаксис

h3ToGeoBoundary(h3Index)

Аргументы

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

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

Пример

Запрос:

SELECT h3ToGeoBoundary(644325524701193974) AS coordinates;

Результат:

┌─h3ToGeoBoundary(599686042433355775)────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ [(37.2713558667319,-121.91508032705622),(37.353926450852256,-121.8622232890249),(37.42834118609435,-121.92354999630156),(37.42012867767779,-122.03773496427027),(37.33755608435299,-122.090428929044),(37.26319797461824,-122.02910130919001)] │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

h3kRing

Перечисляет все H3 шестиугольники в радиусе k от данного шестиугольника в случайном порядке.

Синтаксис

h3kRing(h3index, k)

Аргументы

  • h3index — номер индекса шестиугольника. UInt64.
  • k — радиус. integer

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

Пример

Запрос:

SELECT arrayJoin(h3kRing(644325529233966508, 1)) AS h3index;

Результат:

┌────────────h3index─┐
│ 644325529233966508 │
│ 644325529233966497 │
│ 644325529233966510 │
│ 644325529233966504 │
│ 644325529233966509 │
│ 644325529233966355 │
│ 644325529233966354 │
└────────────────────┘

h3GetBaseCell

Возвращает номер базовой ячейки для H3 индекса.

Синтаксис

h3GetBaseCell(index)

Параметр

  • index — номер индекса шестиугольника. UInt64.

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

  • Номер базовой ячейки шестиугольника. UInt8.

Пример

Запрос:

SELECT h3GetBaseCell(612916788725809151) AS basecell;

Результат:

┌─basecell─┐
│       12 │
└──────────┘

h3HexAreaM2

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

Синтаксис

h3HexAreaM2(resolution)

Параметр

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

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

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

Пример

Запрос:

SELECT h3HexAreaM2(13) AS area;

Результат:

┌─area─┐
│ 43.9 │
└──────┘

h3HexAreaKm2

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

Синтаксис

h3HexAreaKm2(resolution)

Параметр

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

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

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

Пример

Запрос:

SELECT h3HexAreaKm2(13) AS area;

Результат:

┌──────area─┐
│ 0.0000439 │
└───────────┘

h3IndexesAreNeighbors

Возвращает, являются ли предоставленные H3 индексы соседями.

Синтаксис

h3IndexesAreNeighbors(index1, index2)

Аргументы

  • index1 — номер индекса шестиугольника. UInt64.
  • index2 — номер индекса шестиугольника. UInt64.

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

  • 1 — Индексы соседи. UInt8.
  • 0 — Индексы не соседи. UInt8.

Пример

Запрос:

SELECT h3IndexesAreNeighbors(617420388351344639, 617420388352655359) AS n;

Результат:

┌─n─┐
│ 1 │
└───┘

h3ToChildren

Возвращает массив дочерних индексов для данного H3 индекса.

Синтаксис

h3ToChildren(index, resolution)

Аргументы

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

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

  • Массив дочерних H3 индексов. Array(UInt64).

Пример

Запрос:

SELECT h3ToChildren(599405990164561919, 6) AS children;

Результат:

┌─children───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ [603909588852408319,603909588986626047,603909589120843775,603909589255061503,603909589389279231,603909589523496959,603909589657714687] │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

h3ToParent

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

Синтаксис

h3ToParent(index, resolution)

Аргументы

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

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

  • Родительский H3 индекс. UInt64.

Пример

Запрос:

SELECT h3ToParent(599405990164561919, 3) AS parent;

Результат:

┌─────────────parent─┐
│ 590398848891879423 │
└────────────────────┘

h3ToString

Преобразует представление H3Index индекса в строковое представление.

h3ToString(index)

Параметр

  • index — номер индекса шестиугольника. UInt64.

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

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

Пример

Запрос:

SELECT h3ToString(617420388352917503) AS h3_string;

Результат:

┌─h3_string───────┐
│ 89184926cdbffff │
└─────────────────┘

stringToH3

Преобразует строковое представление в представление H3Index (UInt64).

Синтаксис

stringToH3(index_str)

Параметр

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

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

  • Номер индекса шестиугольника. Возвращает 0 в случае ошибки. UInt64.

Пример

Запрос:

SELECT stringToH3('89184926cc3ffff') AS index;

Результат:

┌──────────────index─┐
│ 617420388351344639 │
└────────────────────┘

h3GetResolution

Возвращает разрешение H3 индекса.

Синтаксис

h3GetResolution(index)

Параметр

  • index — номер индекса шестиугольника. UInt64.

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

  • Разрешение индекса. Диапазон: [0, 15]. UInt8.

Пример

Запрос:

SELECT h3GetResolution(617420388352917503) AS res;

Результат:

┌─res─┐
│   9 │
└─────┘

h3IsResClassIII

Возвращает, имеет ли H3 индекс разрешение с направлением класса III.

Синтаксис

h3IsResClassIII(index)

Параметр

  • index — номер индекса шестиугольника. UInt64.

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

  • 1 — Индекс имеет разрешение с направлением класса III. UInt8.
  • 0 — Индекс не имеет разрешения с направлением класса III. UInt8.

Пример

Запрос:

SELECT h3IsResClassIII(617420388352917503) AS res;

Результат:

┌─res─┐
│   1 │
└─────┘

h3IsPentagon

Возвращает, представляет ли этот H3 индекс пятнистую ячейку.

Синтаксис

h3IsPentagon(index)

Параметр

  • index — номер индекса шестиугольника. UInt64.

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

  • 1 — Индекс представляет пятнистую ячейку. UInt8.
  • 0 — Индекс не представляет пятнистую ячейку. UInt8.

Пример

Запрос:

SELECT h3IsPentagon(644721767722457330) AS pentagon;

Результат:

┌─pentagon─┐
│        0 │
└──────────┘

h3GetFaces

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

Синтаксис

h3GetFaces(index)

Параметр

  • index — номер индекса шестиугольника. UInt64.

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

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

Пример

Запрос:

SELECT h3GetFaces(599686042433355775) AS faces;

Результат:

┌─faces─┐
│ [7]   │
└───────┘

h3CellAreaM2

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

Синтаксис

h3CellAreaM2(index)

Параметр

  • index — номер индекса шестиугольника. UInt64.

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

  • Площадь ячейки в квадратных метрах. Float64.

Пример

Запрос:

SELECT h3CellAreaM2(579205133326352383) AS area;

Результат:

┌───────────────area─┐
│ 4106166334463.9233 │
└────────────────────┘

h3CellAreaRads2

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

Синтаксис

h3CellAreaRads2(index)

Параметр

  • index — номер индекса шестиугольника. UInt64.

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

  • Площадь ячейки в квадратных радианах. Float64.

Пример

Запрос:

SELECT h3CellAreaRads2(579205133326352383) AS area;

Результат:

┌────────────────area─┐
│ 0.10116268528089567 │
└─────────────────────┘

h3ToCenterChild

Возвращает центральный дочерний (более мелкий) H3 индекс, содержащийся в данном H3 индексе при заданном разрешении.

Синтаксис

h3ToCenterChild(index, resolution)

Параметр

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

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

  • H3 индекс центрального дочернего элемента, содержащегося в данном H3 индексе при заданном разрешении. UInt64.

Пример

Запрос:

SELECT h3ToCenterChild(577023702256844799,1) AS centerToChild;

Результат:

┌──────centerToChild─┐
│ 581496515558637567 │
└────────────────────┘

h3ExactEdgeLengthM

Возвращает точную длину ребра одностороннего ребра, представленного входным h3 индексом, в метрах.

Синтаксис

h3ExactEdgeLengthM(index)

Параметр

  • index — номер индекса шестиугольника. UInt64.

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

  • Точная длина ребра в метрах. Float64.

Пример

Запрос:

SELECT h3ExactEdgeLengthM(1310277011704381439) AS exactEdgeLengthM;;

Результат:

┌───exactEdgeLengthM─┐
│ 195449.63163407316 │
└────────────────────┘

h3ExactEdgeLengthKm

Возвращает точную длину ребра одностороннего ребра, представленного входным h3 индексом, в километрах.

Синтаксис

h3ExactEdgeLengthKm(index)

Параметр

  • index — номер индекса шестиугольника. UInt64.

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

  • Точная длина ребра в километрах. Float64.

Пример

Запрос:

SELECT h3ExactEdgeLengthKm(1310277011704381439) AS exactEdgeLengthKm;;

Результат:

┌──exactEdgeLengthKm─┐
│ 195.44963163407317 │
└────────────────────┘

h3ExactEdgeLengthRads

Возвращает точную длину ребра одностороннего ребра, представленного входным h3 индексом, в радианах.

Синтаксис

h3ExactEdgeLengthRads(index)

Параметр

  • index — номер индекса шестиугольника. UInt64.

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

  • Точная длина ребра в радианах. Float64.

Пример

Запрос:

SELECT h3ExactEdgeLengthRads(1310277011704381439) AS exactEdgeLengthRads;;

Результат:

┌──exactEdgeLengthRads─┐
│ 0.030677980118976447 │
└──────────────────────┘

h3NumHexagons

Возвращает количество уникальных H3 индексов при заданном разрешении.

Синтаксис

h3NumHexagons(resolution)

Параметр

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

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

  • Количество H3 индексов. Int64.

Пример

Запрос:

SELECT h3NumHexagons(3) AS numHexagons;

Результат:

┌─numHexagons─┐
│       41162 │
└─────────────┘

h3PointDistM

Возвращает расстояние "по большой окружности" или "по формуле гаверсина" между парами GeoCoord точек (широта/долгота) в метрах.

Синтаксис

h3PointDistM(lat1, lon1, lat2, lon2)

Аргументы

  • lat1, lon1 — Широта и долгота точки 1 в градусах. Float64.
  • lat2, lon2 — Широта и долгота точки 2 в градусах. Float64.

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

  • Расстояние по гаверсину или по большой окружности в метрах. Float64.

Пример

Запрос:

SELECT h3PointDistM(-10.0 ,0.0, 10.0, 0.0) AS h3PointDistM;

Результат:

┌──────h3PointDistM─┐
│ 2223901.039504589 │
└───────────────────┘

h3PointDistKm

Возвращает расстояние "по большой окружности" или "по формуле гаверсина" между парами GeoCoord точек (широта/долгота) в километрах.

Синтаксис

h3PointDistKm(lat1, lon1, lat2, lon2)

Аргументы

  • lat1, lon1 — Широта и долгота точки 1 в градусах. Float64.
  • lat2, lon2 — Широта и долгота точки 2 в градусах. Float64.

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

  • Расстояние по гаверсину или по большой окружности в километрах. Float64.

Пример

Запрос:

SELECT h3PointDistKm(-10.0 ,0.0, 10.0, 0.0) AS h3PointDistKm;

Результат:

┌─────h3PointDistKm─┐
│ 2223.901039504589 │
└───────────────────┘

h3PointDistRads

Возвращает расстояние "по большой окружности" или "по формуле гаверсина" между парами GeoCoord точек (широта/долгота) в радианах.

Синтаксис

h3PointDistRads(lat1, lon1, lat2, lon2)

Аргументы

  • lat1, lon1 — Широта и долгота точки 1 в градусах. Float64.
  • lat2, lon2 — Широта и долгота точки 2 в градусах. Float64.

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

  • Расстояние по гаверсину или по большой окружности в радианах. Float64.

Пример

Запрос:

SELECT h3PointDistRads(-10.0 ,0.0, 10.0, 0.0) AS h3PointDistRads;

Результат:

┌────h3PointDistRads─┐
│ 0.3490658503988659 │
└────────────────────┘

h3GetRes0Indexes

Возвращает массив всех индексов H3 разрешения 0.

Синтаксис

h3GetRes0Indexes()

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

  • Массив всех индексов H3 разрешения 0. Array(UInt64).

Пример

Запрос:

SELECT h3GetRes0Indexes AS indexes ;

Результат:

┌─indexes─────────────────────────────────────┐
│ [576495936675512319,576531121047601151,....]│
└─────────────────────────────────────────────┘

h3GetPentagonIndexes

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

Синтаксис

h3GetPentagonIndexes(resolution)

Параметр

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

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

  • Массив всех индексов H3 с формой пятугольника. Array(UInt64).

Пример

Запрос:

SELECT h3GetPentagonIndexes(3) AS indexes;

Результат:

┌─indexes────────────────────────────────────────────────────────┐
│ [590112357393367039,590464201114255359,590816044835143679,...] │
└────────────────────────────────────────────────────────────────┘

h3Line

Возвращает линию индексов между двумя предоставленными индексами.

Синтаксис

h3Line(start,end)

Параметр

  • start — номер индекса шестиугольника, представляющий начальную точку. UInt64.
  • end — номер индекса шестиугольника, представляющий конечную точку. UInt64.

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

Массив h3 индексов, представляющий линию индексов между двумя предоставленными индексами. Array(UInt64).

Пример

Запрос:

SELECT h3Line(590080540275638271,590103561300344831) AS indexes;

Результат:

┌─indexes────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ [590080540275638271,590080471556161535,590080883873021951,590106516237844479,590104385934065663,590103630019821567,590103561300344831] │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

h3Distance

Возвращает расстояние в ячейках сетки между двумя предоставленными индексами.

Синтаксис

h3Distance(start,end)

Параметр

  • start — номер индекса шестиугольника, представляющий начальную точку. UInt64.
  • end — номер индекса шестиугольника, представляющий конечную точку. UInt64.

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

  • Количество ячеек сетки. Int64.

Возвращает отрицательное число, если не удалось найти расстояние.

Пример

Запрос:

SELECT h3Distance(590080540275638271,590103561300344831) AS distance;

Результат:

┌─distance─┐
│        7 │
└──────────┘

h3HexRing

Возвращает индексы шестиугольного кольца, расположенного в центре предоставленного индекса h3Index и длиной k.

Возвращает 0, если не было обнаружено никаких пятнистых искажений.

Синтаксис

h3HexRing(index, k)

Параметр

  • index — номер индекса шестиугольника, представляющий центр. UInt64.
  • k — расстояние. UInt64.

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

Пример

Запрос:

SELECT h3HexRing(590080540275638271, toUInt16(1)) AS hexRing;

Результат:

┌─hexRing─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ [590080815153545215,590080471556161535,590080677714591743,590077585338138623,590077447899185151,590079509483487231] │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

h3GetUnidirectionalEdge

Возвращает односторонний реберный H3 индекс на основе предоставленного происхождения и назначения и возвращает 0 в случае ошибки.

Синтаксис

h3GetUnidirectionalEdge(originIndex, destinationIndex)

Параметр

  • originIndex — номер индекса шестиугольника, представляющий происхождение. UInt64.
  • destinationIndex — номер индекса шестиугольника, представляющий назначение. UInt64.

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

  • Номер одностороннего реберного индекса шестиугольника. UInt64.

Пример

Запрос:

SELECT h3GetUnidirectionalEdge(599686042433355775, 599686043507097599) AS edge;

Результат:

┌────────────────edge─┐
│ 1248204388774707199 │
└─────────────────────┘

h3UnidirectionalEdgeIsValid

Определяет, является ли предоставленный H3Index действительным односторонним ребром. Возвращает 1, если это одностороннее ребро, и 0 в противном случае.

Синтаксис

h3UnidirectionalEdgeisValid(index)

Параметр

  • index — номер индекса шестиугольника. UInt64.

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

  • 1 — H3 индекс является действительным односторонним ребром. UInt8.
  • 0 — H3 индекс не является действительным односторонним ребром. UInt8.

Пример

Запрос:

SELECT h3UnidirectionalEdgeIsValid(1248204388774707199) AS validOrNot;

Результат:

┌─validOrNot─┐
│          1 │
└────────────┘

h3GetOriginIndexFromUnidirectionalEdge

Возвращает исходный индекс шестиугольника из одностороннего ребра H3Index.

Синтаксис

h3GetOriginIndexFromUnidirectionalEdge(edge)

Параметр

  • edge — номер индекса шестиугольника, представляющий одностороннее ребро. UInt64.

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

  • Номер исходного индекса шестиугольника. UInt64.

Пример

Запрос:

SELECT h3GetOriginIndexFromUnidirectionalEdge(1248204388774707197) AS origin;

Результат:

┌─────────────origin─┐
│ 599686042433355773 │
└────────────────────┘

h3GetDestinationIndexFromUnidirectionalEdge

Возвращает целевой индекс шестиугольника из одностороннего ребра H3Index.

Синтаксис

h3GetDestinationIndexFromUnidirectionalEdge(edge)

Параметр

  • edge — номер индекса шестиугольника, представляющий одностороннее ребро. UInt64.

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

  • Номер целевого индекса шестиугольника. UInt64.

Пример

Запрос:

SELECT h3GetDestinationIndexFromUnidirectionalEdge(1248204388774707197) AS destination;

Результат:

┌────────destination─┐
│ 599686043507097597 │
└────────────────────┘

h3GetIndexesFromUnidirectionalEdge

Возвращает исходные и целевые индексы шестиугольников из данного одностороннего ребра H3Index.

Синтаксис

h3GetIndexesFromUnidirectionalEdge(edge)

Параметр

  • edge — номер индекса шестиугольника, представляющий одностороннее ребро. UInt64.

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

Кортеж, состоящий из двух значений tuple(origin,destination):

  • origin — номер исходного индекса шестиугольника. UInt64.
  • destination — номер целевого индекса шестиугольника. UInt64.

Возвращает (0,0), если предоставленный ввод недействителен.

Пример

Запрос:

SELECT h3GetIndexesFromUnidirectionalEdge(1248204388774707199) AS indexes;

Результат:

┌─indexes─────────────────────────────────┐
│ (599686042433355775,599686043507097599) │
└─────────────────────────────────────────┘

h3GetUnidirectionalEdgesFromHexagon

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

Синтаксис

h3GetUnidirectionalEdgesFromHexagon(index)

Параметр

  • index — номер индекса шестиугольника, представляющий одностороннее ребро. UInt64.

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

Массив h3 индексов, представляющий каждое одностороннее ребро. Array(UInt64).

Пример

Запрос:

SELECT h3GetUnidirectionalEdgesFromHexagon(1248204388774707199) AS edges;

Результат:

┌─edges─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ [1248204388774707199,1320261982812635135,1392319576850563071,1464377170888491007,1536434764926418943,1608492358964346879] │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

h3GetUnidirectionalEdgeBoundary

Возвращает координаты, определяющие одностороннее ребро.

Синтаксис

h3GetUnidirectionalEdgeBoundary(index)

Параметр

  • index — номер индекса шестиугольника, представляющий одностороннее ребро. UInt64.

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

Пример

Запрос:

SELECT h3GetUnidirectionalEdgeBoundary(1248204388774707199) AS boundary;

Результат:

┌─boundary────────────────────────────────────────────────────────────────────────┐
│ [(37.42012867767779,-122.03773496427027),(37.33755608435299,-122.090428929044)] │
└─────────────────────────────────────────────────────────────────────────────────┘