Skip to main content

H3 Index

H3 é um sistema de indexação geográfica em que a superfície da Terra é dividida em uma grade de células hexagonais uniformes. Esse sistema é hierárquico, ou seja, cada hexágono no nível superior (“pai”) pode ser dividido em sete outros hexágonos uniformes, porém menores (“filhos”), e assim por diante. O nível da hierarquia é chamado de resolution e pode assumir um valor de 0 a 15, em que 0 é o nível base, com as células maiores e menos detalhadas. Um par de latitude e longitude pode ser transformado em um índice H3 de 64 bits, que identifica uma célula da grade. O índice H3 é usado principalmente para agrupar localizações e realizar outras manipulações geoespaciais. A descrição completa do sistema H3 está disponível no site de Engenharia da Uber.

h3IsValid

Verifica se o número é um índice H3 válido. Sintaxe
Parâmetro
  • h3index — Número do índice hexagonal. UInt64.
Valores retornados
  • 1 — O número é um índice H3 válido. UInt8.
  • 0 — O número não é um índice H3 válido. UInt8.
Exemplo
Query
Response

h3GetResolution

Define a resolução do índice H3 informado. Sintaxe
Parâmetro
  • h3index — Número do índice hexagonal. UInt64.
Valores retornados
  • Resolução do índice. Intervalo: [0, 15]. UInt8.
  • Se o índice não for válido, a função retornará um valor aleatório. Use h3IsValid para verificar o índice. UInt8.
Exemplo
Query
Response

h3EdgeAngle

Calcula o comprimento médio de uma aresta de um hexágono H3, em graus. Sintaxe
Parâmetro
  • resolution — Resolução do índice. UInt8. Intervalo: [0, 15].
Valores retornados
  • O comprimento médio da aresta de um hexágono H3, em graus. Float64.
Exemplo
Query
Response

h3EdgeLengthM

Calcula o comprimento médio da aresta de um hexágono H3, em metros. Sintaxe
Parâmetro
  • resolution — Resolução do índice. UInt8. Intervalo: [0, 15].
Valores retornados
  • O comprimento médio da aresta de um hexágono H3, em metros. Float64.
Exemplo
Query
Response

h3EdgeLengthKm

Calcula o comprimento médio da aresta de um hexágono H3, em quilômetros. Sintaxe
Parâmetro
  • resolution — Resolução do índice. UInt8. Intervalo: [0, 15].
Valores retornados
  • O comprimento médio da aresta de um hexágono H3, em quilômetros. Float64.
Exemplo
Query
Response

geoToH3

Retorna H3 o índice do ponto (lat, lon) com a resolução especificada. Sintaxe
Argumentos
  • lat — Latitude. Float64.
  • lon — Longitude. Float64.
  • resolution — Resolução do índice. Intervalo: [0, 15]. UInt8.
Valores retornados
  • Número do índice hexagonal. UInt64.
  • 0 em caso de erro. UInt64.
Observação: no ClickHouse v25.4 ou anterior, geoToH3() recebe os valores na ordem (lon, lat). A partir do ClickHouse v25.5, os valores de entrada seguem a ordem (lat, lon). O comportamento anterior pode ser restaurado usando a configuração geotoh3_argument_order = 'lon_lat'. Exemplo
Query
Response

h3ToGeo

Retorna a latitude e a longitude do centróide correspondentes ao índice H3 informado. Sintaxe
Argumentos
  • h3Index — índice H3. UInt64.
Valores retornados
  • Uma tupla composta por dois valores: tuple(lat,lon). lat — Latitude. Float64. lon — Longitude. Float64.
Observação: no ClickHouse v24.12 ou anterior, h3ToGeo() retorna os valores na ordem (lon, lat). A partir do ClickHouse v25.1, os valores retornados ficam na ordem (lat, lon). O comportamento anterior pode ser restaurado usando a configuração h3togeo_lon_lat_result_order = true. Exemplo
Query
Response

h3ToGeoBoundary

Retorna um array de pares (lat, lon), que correspondem ao contorno do índice H3 fornecido. Sintaxe
Argumentos
  • h3Index — índice H3. UInt64.
Valores retornados Exemplo
Query
Response

h3kRing

Lista todos os hexágonos H3 em um raio de k do hexágono fornecido, em ordem aleatória. Sintaxe
Argumentos
  • h3index — Número do índice hexagonal. UInt64.
  • k — Raio. inteiro
Valores retornados Exemplo
Query
Response

h3PolygonToCells

Retorna os hexágonos (na resolução especificada) contidos na geometria fornecida, seja um ring ou um (multi-)polygon. Sintaxe
Argumentos Valores retornados Exemplo
Query
Response

h3PolygonToCellsWithContainment

Retorna os hexágonos (na resolução especificada) que cobrem a geometria fornecida, seja um anel ou um (multi)polígono, usando os modos experimentais de contenção do H3. Esta função associa as flags aos modos de contenção do H3:
  • 0CONTAINMENT_CENTER
  • 1CONTAINMENT_FULL
  • 2CONTAINMENT_OVERLAPPING
  • 3CONTAINMENT_OVERLAPPING_BBOX
Sintaxe
Argumentos
  • geometry pode ser um dos seguintes Tipos de Dados Geo ou seus respectivos tipos primitivos:
  • resolution — Resolução do índice. Intervalo: [0, 15]. UInt8.
  • flags — Modo de contenção. Intervalo: [0, 3]. Use literais inteiros como 0, 1, 2 e 3, ou valores UInt32 (por exemplo, toUInt32(2)). Os valores são passados para a API H3 como UInt32. Outros tipos inteiros nativos são convertidos com exatidão.
Valores retornados
  • Array de índices H3 de acordo com o modo de contenção selecionado. Array(UInt64).
Exemplo
Query
Response

h3GetBaseCell

Retorna o número da célula-base do índice H3. Sintaxe
Parâmetro
  • index — número do índice hexagonal. UInt64.
Valor retornado
  • Número da célula-base do hexágono. UInt8.
Exemplo
Query
Response

h3HexAreaM2

Retorna a área média do hexágono em metros quadrados na resolução informada. Sintaxe
Parâmetro
  • resolution — Resolução do índice. Intervalo: [0, 15]. UInt8.
Valor retornado
  • Área em metros quadrados. Float64.
Exemplo
Query
Response

h3HexAreaKm2

Retorna a área média de um hexágono em quilômetros quadrados na resolução especificada. Sintaxe
Parâmetro
  • resolution — Resolução do índice. Faixa: [0, 15]. UInt8.
Valor retornado
  • Área em quilômetros quadrados. Float64.
Exemplo
Query
Response

h3IndexesAreNeighbors

Retorna se os H3 índices fornecidos são vizinhos. Sintaxe
Argumentos
  • index1 — Número do índice hexagonal. UInt64.
  • index2 — Número do índice hexagonal. UInt64.
Valor retornado
  • 1 — Os índices são vizinhos. UInt8.
  • 0 — Os índices não são vizinhos. UInt8.
Exemplo
Query
Response

h3ToChildren

Retorna um array com os índices filhos do índice H3 informado. Sintaxe
Argumentos
  • index — Número do índice hexagonal. UInt64.
  • resolution — Resolução do índice. Intervalo: [0, 15]. UInt8.
Valores retornados Exemplo
Query
Response

h3ToParent

Retorna o índice pai (de resolução mais baixa) que contém o índice H3 informado. Sintaxe
Argumentos
  • index — número do índice hexagonal. UInt64.
  • resolution — Resolução do índice. Intervalo: [0, 15]. UInt8.
Valor retornado Exemplo
Query
Response

h3ToString

Converte a representação H3Index do índice em sua representação textual.
Parâmetro
  • index — Número do índice hexagonal. UInt64.
Valor retornado
  • Representação textual do índice H3. String.
Exemplo
Query
Response

stringToH3

Converte a representação textual em H3Index (UInt64). Sintaxe
Parâmetro
  • index_str — Representação textual do índice H3. String.
Valor retornado
  • Número do índice hexagonal. Retorna 0 em caso de erro. UInt64.
Exemplo
Query
Response

h3GetResolution

Retorna a resolução do índice H3. Sintaxe
Parâmetro
  • index — Número do índice hexagonal. UInt64.
Valor retornado
  • Resolução do índice. Intervalo: [0, 15]. UInt8.
Exemplo
Query
Response

h3IsResClassIII

Retorna se o índice H3 tem uma resolução de orientação Classe III. Sintaxe
Parâmetro
  • index — Número do índice hexagonal. UInt64.
Valor retornado
  • 1 — O índice tem resolução com orientação de Classe III. UInt8.
  • 0 — O índice não tem resolução com orientação de Classe III. UInt8.
Exemplo
Query
Response

h3IsPentagon

Retorna se este índice H3 corresponde a uma célula pentagonal. Sintaxe
Parâmetro
  • index — Número do índice hexagonal. UInt64.
Valor retornado
  • 1 — O índice representa uma célula pentagonal. UInt8.
  • 0 — O índice não representa uma célula pentagonal. UInt8.
Exemplo
Query
Response

h3GetFaces

Retorna as faces do icosaedro que são intersectadas por um determinado índice H3. Sintaxe
Parâmetro
  • index — Número do índice do hexágono. UInt64.
Valores retornados
  • Array contendo as faces do icosaedro que têm interseção com um determinado índice H3. Array(UInt64).
Exemplo
Query
Response

h3CellAreaM2

Retorna a área exata, em metros quadrados, de uma célula específica correspondente ao índice H3 informado. Sintaxe
Parâmetro
  • index — Número do índice do hexágono. UInt64.
Valor retornado
  • Área da célula em metros quadrados. Float64.
Exemplo
Query
Response

h3CellAreaRads2

Retorna a área exata de uma célula específica em radianos quadrados correspondente ao índice H3 informado. Sintaxe
Parâmetro
  • index — Número do índice do hexágono. UInt64.
Valor retornado
  • Área da célula em radianos ao quadrado. Float64.
Exemplo
Query
Response

h3ToCenterChild

Retorna o índice H3 filho central (mais refinado) contido no H3 especificado, na resolução informada. Sintaxe
Parâmetro
  • index — Número do índice do hexágono. UInt64.
  • resolution — Resolução do índice. Intervalo: [0, 15]. UInt8.
Valores retornados
  • índice H3 do filho central contido no H3 fornecido, na resolução especificada. UInt64.
Exemplo
Query
Response

h3ExactEdgeLengthM

Retorna o comprimento exato da aresta unidirecional representada pelo índice H3 de entrada, em metros. Sintaxe
Parâmetro
  • index — Número do índice do hexágono. UInt64.
Valor retornado
  • Comprimento exato da aresta em metros. Float64.
Exemplo
Query
Response

h3ExactEdgeLengthKm

Retorna o comprimento exato da aresta unidirecional representada pelo índice H3 informado, em quilômetros. Sintaxe
Parâmetro
  • index — Número do índice do hexágono. UInt64.
Valor retornado
  • Comprimento exato da aresta em quilômetros. Float64.
Exemplo
Query
Response

h3ExactEdgeLengthRads

Retorna o comprimento exato da aresta unidirecional representada pelo índice H3 informado, em radianos. Sintaxe
Parâmetro
  • index — Número do índice do hexágono. UInt64.
Valor de retorno
  • Comprimento exato da aresta, em radianos. Float64.
Exemplo
Query
Response

h3NumHexagons

Retorna o número de índices H3 únicos na resolução especificada. Sintaxe
Parâmetro
  • resolution — Resolução do índice. Intervalo: [0, 15]. UInt8.
Valor retornado
  • Número de índices H3. Int64.
Exemplo
Query
Response

h3PointDistM

Retorna a distância de “grande círculo” ou “haversine” entre pares de pontos GeoCoord (latitude/longitude), em metros. Sintaxe
Argumentos
  • lat1, lon1 — Latitude e longitude do ponto 1 em graus. Float64.
  • lat2, lon2 — Latitude e longitude do ponto 2 em graus. Float64.
Valores retornados
  • Distância haversine, ou de grande círculo, em metros.Float64.
Exemplo
Query
Response

h3PointDistKm

Retorna a distância de “grande círculo” ou “haversine” entre pares de pontos GeoCoord (latitude/longitude), em quilômetros. Sintaxe
Argumentos
  • lat1, lon1 — Latitude e longitude do ponto 1, em graus. Float64.
  • lat2, lon2 — Latitude e longitude do ponto 2, em graus. Float64.
Valores retornados
  • Distância de Haversine ou de grande círculo, em quilômetros. Float64.
Exemplo
Query
Response

h3PointDistRads

Retorna a distância de “grande círculo” ou “haversine” entre pares de pontos GeoCoord (latitude/longitude), em radianos. Sintaxe
Argumentos
  • lat1, lon1 — Latitude e longitude do ponto 1 em graus. Float64.
  • lat2, lon2 — Latitude e longitude do ponto 2 em graus. Float64.
Valores retornados
  • Distância haversine ou de grande círculo em radianos. Float64.
Exemplo
Query
Response

h3GetRes0Indexes

Retorna um array com todos os índices H3 de resolução 0. Sintaxe
Valores retornados
  • Array com todos os índices H3 de resolução 0. Array(UInt64).
Exemplo
Query
Response

h3GetPentagonIndexes

Retorna todos os índices H3 pentagonais na resolução especificada. Sintaxe
Parâmetro
  • resolution — Resolução do índice. Intervalo: [0, 15]. UInt8.
Valor retornado
  • Array com todos os índices H3 de pentágono. Array(UInt64).
Exemplo
Query
Response

h3Line

Retorna a linha de índices entre os dois índices informados. Sintaxe
Parâmetro
  • start — Número do índice H3 que representa um ponto inicial. UInt64.
  • end — Número do índice H3 que representa um ponto final. UInt64.
Valor retornado Array de índices H3 que representa a linha de índices entre os dois índices fornecidos. Array(UInt64). Exemplo
Query
Response

h3Distance

Retorna a distância em células de grade entre os dois índices fornecidos. Sintaxe
Parâmetro
  • start — Número do índice do hexágono que representa o ponto inicial. UInt64.
  • end — Número do índice do hexágono que representa o ponto final. UInt64.
Valor retornado
  • Número de células da grade. Int64.
Retorna um número negativo se o cálculo da distância falhar. Exemplo
Query
Response

h3HexRing

Retorna os índices do anel hexagonal centrado no h3Index de origem fornecido, com comprimento k. Retorna 0 se não houver distorção pentagonal. Sintaxe
Parâmetro
  • index — Número do índice do hexágono que representa a origem. UInt64.
  • k — Distância. UInt64.
Valores retornados Exemplo
Query
Response

h3GetUnidirectionalEdge

Retorna um índice H3 de aresta unidirecional para dois índices de células H3 adjacentes (origem e destino). Lança uma exceção se uma das entradas não for uma célula H3 válida (controlado pela configuração functions_h3_default_if_invalid). Para células válidas que não são vizinhas (incluindo a mesma célula duas vezes), retorna 0. Sintaxe
Parâmetro
  • originIndex — Número do índice do hexágono de origem. UInt64.
  • destinationIndex — Número do índice do hexágono de destino. UInt64.
Valor retornado
  • Número do índice do hexágono da aresta unidirecional. UInt64.
Exemplo
Query
Response

h3UnidirectionalEdgeIsValid

Determina se o H3Index fornecido é um índice de aresta unidirecional válido. Retorna 1 se for uma aresta unidirecional e 0 caso contrário. Sintaxe
Parâmetro
  • index — Número de índice do hexágono. UInt64.
Valor retornado
  • 1 — O índice H3 é uma aresta unidirecional válida. UInt8.
  • 0 — O índice H3 não é uma aresta unidirecional válida. UInt8.
Exemplo
Query
Response

h3GetOriginIndexFromUnidirectionalEdge

Retorna o índice do hexágono de origem da aresta unidirecional H3Index. Lança uma exceção se a entrada não for uma aresta direcionada válida (conforme controlado pela configuração functions_h3_default_if_invalid); retorna 0 somente quando essa configuração estiver habilitada. Sintaxe
Parâmetro
  • edge — Número do índice do hexágono que representa uma aresta unidirecional. UInt64.
Valor retornado
  • Número do índice do hexágono de origem. UInt64.
  • Lança INCORRECT_DATA para arestas direcionadas inválidas por padrão; retorna 0 quando functions_h3_default_if_invalid = 1.
Exemplo
Query
Response

h3GetDestinationIndexFromUnidirectionalEdge

Retorna o índice do hexágono de destino da aresta unidirecional H3Index. Lança uma exceção se a entrada não for uma aresta direcionada válida (controlado pela configuração functions_h3_default_if_invalid); retorna 0 somente quando essa configuração estiver habilitada. Sintaxe
Parâmetro
  • edge — Número do índice do hexágono que representa uma aresta unidirecional. UInt64.
Valor retornado
  • Número do índice do hexágono de destino. UInt64.
  • Lança INCORRECT_DATA para arestas direcionadas inválidas por padrão; retorna 0 quando functions_h3_default_if_invalid = 1.
Exemplo
Query
Response

h3GetIndexesFromUnidirectionalEdge

Retorna os índices dos hexágonos de origem e de destino a partir da aresta unidirecional H3Index fornecida. Sintaxe
Parâmetro
  • edge — Número do índice do hexágono que representa uma aresta unidirecional. UInt64.
Valor retornado Uma tupla composta por dois valores tuple(origin,destination):
  • origin — Número do índice do hexágono de origem. UInt64.
  • destination — Número do índice do hexágono de destino. UInt64.
Lança uma exceção se a entrada fornecida não for uma aresta direcionada válida (conforme controlado pela configuração functions_h3_default_if_invalid); retorna (0,0) somente quando essa configuração está habilitada. Exemplo
Query
Response

h3GetUnidirectionalEdgesFromHexagon

Retorna todas as arestas unidirecionais do H3Index fornecido. Lança uma exceção se a entrada não for uma célula H3 válida (controlado pela configuração functions_h3_default_if_invalid); retorna um array vazio somente quando essa configuração está habilitada. Sintaxe
Parâmetro
  • index — Número do índice do hexágono que representa uma célula. UInt64.
Valor retornado
  • Array de índices H3 que representam cada aresta unidirecional. Array(UInt64).
  • Lança INCORRECT_DATA para células inválidas por padrão; retorna [] quando functions_h3_default_if_invalid = 1.
Exemplo
Query
Response

h3GetUnidirectionalEdgeBoundary

Retorna as coordenadas que definem a aresta unidirecional. Lança uma exceção se a entrada não for uma aresta direcionada válida (conforme controlado pela configuração functions_h3_default_if_invalid); retorna um array vazio apenas quando essa configuração está habilitada. Sintaxe
Parâmetro
  • index — Número do índice do hexágono que representa uma aresta unidirecional. UInt64.
Valor retornado
  • Array de pares ‘(lat, lon)’. Array(Float64, Float64).
  • Lança INCORRECT_DATA para arestas direcionadas inválidas por padrão; retorna [] quando functions_h3_default_if_invalid = 1.
Exemplo
Query
Response
Última modificação em 14 de agosto de 2026