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 deresolution 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. Sintaxeh3index— Número do índice hexagonal. UInt64.
Query
Response
h3GetResolution
Define a resolução do índice H3 informado. Sintaxeh3index— Número do índice hexagonal. UInt64.
- 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.
Query
Response
h3EdgeAngle
Calcula o comprimento médio de uma aresta de um hexágono H3, em graus. Sintaxeresolution— Resolução do índice. UInt8. Intervalo:[0, 15].
Query
Response
h3EdgeLengthM
Calcula o comprimento médio da aresta de um hexágono H3, em metros. Sintaxeresolution— Resolução do índice. UInt8. Intervalo:[0, 15].
Query
Response
h3EdgeLengthKm
Calcula o comprimento médio da aresta de um hexágono H3, em quilômetros. Sintaxeresolution— Resolução do índice. UInt8. Intervalo:[0, 15].
Query
Response
geoToH3
Retorna H3 o índice do ponto(lat, lon) com a resolução especificada.
Sintaxe
lat— Latitude. Float64.lon— Longitude. Float64.resolution— Resolução do índice. Intervalo:[0, 15]. UInt8.
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. Sintaxeh3Index— índice H3. UInt64.
- Uma tupla composta por dois valores:
tuple(lat,lon).lat— Latitude. Float64.lon— Longitude. Float64.
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
h3Index— índice H3. UInt64.
Query
Response
h3kRing
Lista todos os hexágonos H3 em um raio dek do hexágono fornecido, em ordem aleatória.
Sintaxe
Query
Response
h3PolygonToCells
Retorna os hexágonos (na resolução especificada) contidos na geometria fornecida, seja um anel ou um (multi-)polígono. Um hexágono é considerado contido quando a geometria contém seu centro, que corresponde ao modo de contenção0 de h3PolygonToCellsWithContainment.
Todos os vértices da geometria devem estar na esfera: longitude no intervalo [-180, 180] e latitude em [-90, 90] graus. A ordem das células retornadas não é garantida; portanto, ordene o array quando a ordem for importante.
Sintaxe
geometrypode ser um dos seguintes Tipos de dados Geo ou seus tipos primitivos subjacentes:resolution— Resolução do índice. Intervalo:[0, 15]. UInt8.
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. Todos os vértices da geometria devem estar na esfera: longitude no intervalo[-180, 180] e latitude no intervalo [-90, 90], em graus. A ordem das células retornadas não é garantida; portanto, ordene o array quando a ordem for importante.
Esta função associa as flags aos modos de contenção do H3:
0—CONTAINMENT_CENTER1—CONTAINMENT_FULL2—CONTAINMENT_OVERLAPPING3—CONTAINMENT_OVERLAPPING_BBOX
geometrypode ser um dos seguintes Tipos de Dados Geo ou seu tipo primitivo subjacente:resolution— Resolução do índice. Intervalo:[0, 15]. UInt8.flags— Modo de contenção. Intervalo:[0, 3]. Use literais inteiros como0,1,2e3, ou valores UInt32 (por exemplo,toUInt32(2)). Os valores são passados para a API H3 comoUInt32. Outros tipos inteiros nativos são convertidos com exatidão.
Query
Response
h3GetBaseCell
Retorna o número da célula-base do índice H3. Sintaxeindex— número do índice hexagonal. UInt64.
- Número da célula-base do hexágono. UInt8.
Query
Response
h3HexAreaM2
Retorna a área média do hexágono em metros quadrados na resolução informada. Sintaxeresolution— Resolução do índice. Intervalo:[0, 15]. UInt8.
- Área em metros quadrados. Float64.
Query
Response
h3HexAreaKm2
Retorna a área média de um hexágono em quilômetros quadrados na resolução especificada. Sintaxeresolution— Resolução do índice. Faixa:[0, 15]. UInt8.
- Área em quilômetros quadrados. Float64.
Query
Response
h3IndexesAreNeighbors
Retorna se os H3 índices fornecidos são vizinhos. SintaxeQuery
Response
h3ToChildren
Retorna um array com os índices filhos do índice H3 informado. Sintaxeindex— Número do índice hexagonal. UInt64.resolution— Resolução do índice. Intervalo:[0, 15]. UInt8.
Query
Response
h3ToParent
Retorna o índice pai (de resolução mais baixa) que contém o índice H3 informado. Sintaxeindex— número do índice hexagonal. UInt64.resolution— Resolução do índice. Intervalo:[0, 15]. UInt8.
- Índice H3 pai. UInt64.
Query
Response
h3ToString
Converte a representaçãoH3Index do índice em sua representação textual.
index— Número do índice hexagonal. UInt64.
- Representação textual do índice H3. String.
Query
Response
stringToH3
Converte a representação textual emH3Index (UInt64).
Sintaxe
index_str— Representação textual do índice H3. String.
- Número do índice hexagonal. Retorna 0 em caso de erro. UInt64.
Query
Response
h3GetResolution
Retorna a resolução do índice H3. Sintaxeindex— Número do índice hexagonal. UInt64.
- Resolução do índice. Intervalo:
[0, 15]. UInt8.
Query
Response
h3IsResClassIII
Retorna se o índice H3 tem uma resolução de orientação Classe III. Sintaxeindex— Número do índice hexagonal. UInt64.
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.
Query
Response
h3IsPentagon
Retorna se este índice H3 corresponde a uma célula pentagonal. Sintaxeindex— Número do índice hexagonal. UInt64.
1— O índice representa uma célula pentagonal. UInt8.0— O índice não representa uma célula pentagonal. UInt8.
Query
Response
h3GetFaces
Retorna as faces do icosaedro que são intersectadas por um determinado índice H3. Sintaxeindex— Número do índice do hexágono. UInt64.
- Array contendo as faces do icosaedro que têm interseção com um determinado índice H3. Array(UInt64).
Query
Response
h3CellAreaM2
Retorna a área exata, em metros quadrados, de uma célula específica correspondente ao índice H3 informado. Sintaxeindex— Número do índice do hexágono. UInt64.
- Área da célula em metros quadrados. Float64.
Query
Response
h3CellAreaRads2
Retorna a área exata de uma célula específica em radianos quadrados correspondente ao índice H3 informado. Sintaxeindex— Número do índice do hexágono. UInt64.
- Área da célula em radianos ao quadrado. Float64.
Query
Response
h3ToCenterChild
Retorna o índice H3 filho central (mais refinado) contido no H3 especificado, na resolução informada. Sintaxeindex— Número do índice do hexágono. UInt64.resolution— Resolução do índice. Intervalo:[0, 15]. UInt8.
Query
Response
h3ExactEdgeLengthM
Retorna o comprimento exato da aresta unidirecional representada pelo índice H3 de entrada, em metros. Sintaxeindex— Número do índice do hexágono. UInt64.
- Comprimento exato da aresta em metros. Float64.
Query
Response
h3ExactEdgeLengthKm
Retorna o comprimento exato da aresta unidirecional representada pelo índice H3 informado, em quilômetros. Sintaxeindex— Número do índice do hexágono. UInt64.
- Comprimento exato da aresta em quilômetros. Float64.
Query
Response
h3ExactEdgeLengthRads
Retorna o comprimento exato da aresta unidirecional representada pelo índice H3 informado, em radianos. Sintaxeindex— Número do índice do hexágono. UInt64.
- Comprimento exato da aresta, em radianos. Float64.
Query
Response
h3NumHexagons
Retorna o número de índices H3 únicos na resolução especificada. Sintaxeresolution— Resolução do índice. Intervalo:[0, 15]. UInt8.
- Número de índices H3. Int64.
Query
Response
h3PointDistM
Retorna a distância de “grande círculo” ou “haversine” entre pares de pontos GeoCoord (latitude/longitude), em metros. Sintaxelat1,lon1— Latitude e longitude do ponto 1 em graus. Float64.lat2,lon2— Latitude e longitude do ponto 2 em graus. Float64.
- Distância haversine, ou de grande círculo, em metros.Float64.
Query
Response
h3PointDistKm
Retorna a distância de “grande círculo” ou “haversine” entre pares de pontos GeoCoord (latitude/longitude), em quilômetros. Sintaxelat1,lon1— Latitude e longitude do ponto 1, em graus. Float64.lat2,lon2— Latitude e longitude do ponto 2, em graus. Float64.
- Distância de Haversine ou de grande círculo, em quilômetros. Float64.
Query
Response
h3PointDistRads
Retorna a distância de “grande círculo” ou “haversine” entre pares de pontos GeoCoord (latitude/longitude), em radianos. Sintaxelat1,lon1— Latitude e longitude do ponto 1 em graus. Float64.lat2,lon2— Latitude e longitude do ponto 2 em graus. Float64.
- Distância haversine ou de grande círculo em radianos. Float64.
Query
Response
h3GetRes0Indexes
Retorna um array com todos os índices H3 de resolução 0. SintaxeQuery
Response
h3GetPentagonIndexes
Retorna todos os índices H3 pentagonais na resolução especificada. Sintaxeresolution— Resolução do índice. Intervalo:[0, 15]. UInt8.
Query
Response
h3Line
Retorna a linha de índices entre os dois índices informados. Sintaxestart— Número do índice H3 que representa um ponto inicial. UInt64.end— Número do índice H3 que representa um ponto final. UInt64.
Query
Response
h3Distance
Retorna a distância em células de grade entre os dois índices fornecidos. Sintaxestart— 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.
- Número de células da grade. Int64.
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. SintaxeQuery
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çãofunctions_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
originIndex— Número do índice do hexágono de origem. UInt64.destinationIndex— Número do índice do hexágono de destino. UInt64.
- Número do índice do hexágono da aresta unidirecional. UInt64.
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. Sintaxeindex— Número de índice do hexágono. UInt64.
- 1 — O índice H3 é uma aresta unidirecional válida. UInt8.
- 0 — O índice H3 não é uma aresta unidirecional válida. UInt8.
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çãofunctions_h3_default_if_invalid); retorna 0 somente quando essa configuração estiver habilitada.
Sintaxe
edge— Número do índice do hexágono que representa uma aresta unidirecional. UInt64.
- Número do índice do hexágono de origem. UInt64.
- Lança
INCORRECT_DATApara arestas direcionadas inválidas por padrão; retorna0quandofunctions_h3_default_if_invalid = 1.
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çãofunctions_h3_default_if_invalid); retorna 0 somente quando essa configuração estiver habilitada.
Sintaxe
edge— Número do índice do hexágono que representa uma aresta unidirecional. UInt64.
- Número do índice do hexágono de destino. UInt64.
- Lança
INCORRECT_DATApara arestas direcionadas inválidas por padrão; retorna0quandofunctions_h3_default_if_invalid = 1.
Query
Response
h3GetIndexesFromUnidirectionalEdge
Retorna os índices dos hexágonos de origem e de destino a partir da aresta unidirecional H3Index fornecida. Sintaxeedge— Número do índice do hexágono que representa uma aresta unidirecional. UInt64.
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.
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çãofunctions_h3_default_if_invalid); retorna um array vazio somente quando essa configuração está habilitada.
Sintaxe
index— Número do índice do hexágono que representa uma célula. UInt64.
- Array de índices H3 que representam cada aresta unidirecional. Array(UInt64).
- Lança
INCORRECT_DATApara células inválidas por padrão; retorna[]quandofunctions_h3_default_if_invalid = 1.
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çãofunctions_h3_default_if_invalid); retorna um array vazio apenas quando essa configuração está habilitada.
Sintaxe
index— Número do índice do hexágono que representa uma aresta unidirecional. UInt64.
- Array de pares ‘(lat, lon)’. Array(Float64, Float64).
- Lança
INCORRECT_DATApara arestas direcionadas inválidas por padrão; retorna[]quandofunctions_h3_default_if_invalid = 1.
Query
Response