Índice H3 aproximado: coordenadas em célula hexagonal
Esta ferramenta de índice hexagonal H3 aproximado atribui uma coordenada de latitude e longitude a uma célula estável em uma grade hexagonal global com vértice superior.
Executar grátis
Escolha uma resolução de 0 a 15 para passar de regiões amplas a células progressivamente menores. O resultado inclui um identificador legível, coordenadas axiais, um centro estimado e o comprimento aproximado da aresta. A solução foi criada para agrupamento, segmentação, cache e demonstrações leves nas quais células determinísticas importam mais do que a interoperabilidade exata com o sistema H3 oficial.
Escolha uma resolução adequada ao agrupamento
A resolução controla a escala da grade. A resolução 0 produz células muito amplas, e cada nível seguinte reduz pela metade a aresta em unidades angulares. A progressão fica previsível: pontos próximos separados em um nível podem compartilhar uma célula em um nível mais grosso, enquanto resoluções maiores criam grupos mais detalhados. Comece com uma resolução baixa para resumir atividades em grandes regiões e aumente-a para agrupamentos em escala de bairro ou visualizações densas. O comprimento aproximado da aresta oferece uma referência prática, mas não é uma garantia geodésica. Como a grade usa uma projeção equiretangular simples, as distâncias terrestres leste-oeste diminuem perto dos polos, embora a geometria angular permaneça regular. Teste coordenadas representativas da área real que será analisada em vez de escolher o nível apenas pela estimativa da aresta. Acima de tudo, armazene a resolução junto de cada índice, pois células de resoluções diferentes não representam a mesma área.
Entenda como o índice aproximado é produzido
O algoritmo coloca a longitude no eixo horizontal e a latitude no vertical, sobrepõe uma malha hexagonal com vértice superior, converte o ponto em coordenadas axiais fracionárias e as arredonda por coordenadas cúbicas. Esse arredondamento preserva a relação entre os três eixos de uma grade hexagonal e atribui cada entrada válida a uma única célula determinística. O identificador contém o prefixo ah3, a resolução selecionada e códigos base-36 com sinal para q e r. Assim, a mesma entrada gera a mesma saída sem acesso à rede, estado armazenado, aleatoriedade ou dados temporais. O centro retornado resulta da conversão da posição axial arredondada de volta para latitude e longitude e auxilia em rótulos, depuração e marcadores representativos. Pontos nos limites exigem atenção: uma mudança mínima perto da aresta pode selecionar uma célula vizinha, comportamento esperado em qualquer índice espacial. Use a precisão integral das coordenadas de origem quando a repetibilidade junto às bordas for importante.
Saiba quando usar esta grade ou o H3 oficial
Esta capacidade imita deliberadamente o fluxo do H3 sem alegar compatibilidade binária, textual, geométrica ou hierárquica com seus índices. É uma grade analítica compacta para situações em que o senhor ou a senhora precisa de grupos espaciais reproduzíveis sem carregar uma biblioteca geoespacial especializada. Ela atende bem ao agrupamento de locais de amostra, à divisão de chaves de cache, a contagens gerais de densidade, ao ensino de coordenadas axiais e à criação de testes estáveis. O campo compatible_with_h3 é sempre false para impedir que sistemas posteriores confundam o resultado com um endereço H3 oficial. Use a biblioteca H3 oficial para trocar índices com outros aplicativos, percorrer pais e filhos reais, obter limites canônicos, tratar pentágonos ou empregar o modelo terrestre icosaédrico. Esta aproximação usa latitude e longitude planas; suas células distorcem a área no solo conforme a latitude e não se conectam através do antimeridiano. Considere-a um sistema determinístico de agrupamento, não um substituto para análise geodésica.
Casos de uso
Agrupar eventos no mapa
Atribua coordenadas recebidas a grupos espaciais estáveis antes de contar ou resumir eventos.
Criar chaves de cache por local
Use a sequência determinística da célula em uma chave de cache para resultados aproximados por localização.
Prototipar um mapa hexagonal
Explore resoluções e coordenadas axiais antes de adotar uma biblioteca geoespacial completa.
Perguntas frequentes
A célula retornada é um índice H3 válido?
Não. É um identificador aproximado e independente, marcado explicitamente como incompatível com H3.
O que significa resolução?
Ela seleciona o detalhe entre 0 e 15. Cada aumento reduz pela metade a aresta angular e cria grupos mais finos.
Por que o tamanho da célula varia no solo?
O cálculo usa um plano equiretangular; portanto, a mesma faixa de longitude cobre menos terreno perto dos polos.
O resultado é determinístico?
Sim. Valores idênticos de latitude, longitude e resolução sempre produzem o mesmo resultado.
Quanto custa uma solicitação?
Uma solicitação API custa US$ 0,002. A versão do navegador executa localmente o mesmo cálculo puro.
Posso usar o centro como centroide geográfico exato?
Não. Ele é o centro plano da célula aproximada e deve ser tratado como coordenada representativa.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/geo/h3-cell-approx \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"lat":37.7749,"lon":-122.4194}'const res = await fetch("https://api.kit.forhosting.com/geo/h3-cell-approx", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"lat": 37.7749,
"lon": -122.4194
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/h3-cell-approx",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"lat": 37.7749,
"lon": -122.4194
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/h3-cell-approx", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"lat":37.7749,"lon":-122.4194}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"lat":37.7749,"lon":-122.4194}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/h3-cell-approx", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"lat": 37.7749,
"lon": -122.4194
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.h3_cell_approx",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |