ForHosting KIT · Viagens e geografia

Codificador geohash

Transforme um par de coordenadas em um geohash curto: 37,7749 e -122,4194 com nove caracteres viram 9q8yyk8yt, uma chave do tamanho de um quarteirão que agrupa lugares próximos. Grátis no seu navegador.

  • Grátis
  • Funciona no seu navegador
  • Sem cadastro
  • Seus dados não saem do seu aparelho
Use pelo WebAPIE-mailTelegramApp em breve
Se você digitar
Latitude em graus decimais
37,7749
Longitude em graus decimais
-122,4194
Precisão
9
Você obtém
Geohash
9q8yyk8yt

Um geohash transforma um par de coordenadas geográficas em uma curta string base32 que identifica uma célula retangular na Terra. Pontos próximos compartilham longos prefixos em comum, o que torna a codificação útil para busca por proximidade, chaves de tile, partições de cache e tokens de localização legíveis por pessoas. O algoritmo é pura aritmética: sem chamadas de rede, sem amostragem aleatória e sem relógio. Precisão inválida ou coordenadas fora de faixa são rejeitadas com um erro de entrada claro, em vez de uma célula errada silenciosa.

O que um geohash realmente representa

Cada caractere que você acrescenta reduz a célula pela metade, primeiro em uma dimensão e depois na outra, de modo que strings mais longas descrevem retângulos menores. Um hash de um caractere cobre uma faixa enorme do planeta; nove ou dez caracteres costumam ser finos o bastante para um quarteirão ou a pegada de um edifício, dependendo da latitude.

Como os prefixos se aninham, dois locais que compartilham os sete primeiros caracteres caem dentro da mesma célula grosseira, e é exatamente isso que torna práticas as consultas por prefixo e o agrupamento em mapas. A string não é um hash criptográfico: pontos diferentes podem compartilhar um prefixo de propósito, e a mesma precisão sempre produz a mesma string para as mesmas coordenadas.

Use-a quando precisar de uma chave compacta e segura para URL de um lugar, em vez de um par completo de ponto flutuante em cada linha de log ou linha de banco de dados.

Como escolher a precisão e enviar as coordenadas

A precisão é o número de caracteres base32 que você quer de volta, de um até doze. Valores baixos servem para baldes de país ou região; valores médios servem para cidades e bairros; valores altos servem para células em escala de interior ou de rastreamento de veículos. Campos ausentes e valores não numéricos falham da mesma forma.

Prefira números decimais estáveis a strings com unidades ou letras cardeais; converta referências DMS ou de grade antes de chamar.

Onde as células codificadas se encaixam em pipelines reais

As equipes usam geohashes como chaves de partição em bases de séries temporais, como identificadores de tile de mapa para caches de cliente, como prefixos compartilhados para filtros de pontos próximos e como tokens curtos em URLs ou cargas de QR quando um par completo de lat/lon é incômodo. Como a transformação é determinística e sem efeitos colaterais, você pode regenerar a mesma chave no navegador, em um worker ou em um job em lote e esperar resultados idênticos byte a byte para as mesmas entradas.

Isso importa para testes de referência, réplicas multirregião e ferramentas offline que não podem divergir. Lembre-se de que as células geohash são retângulos no espaço de graus, não círculos perfeitos de área igual: perto dos polos, uma célula longa é muito mais estreita em metros no sentido leste-oeste do que o mesmo comprimento perto do equador. Para busca estrita por raio, você ainda calcula a distância sobre os pontos originais; use o hash para agrupar e recuperar candidatos e, depois, refine.

Chaves de partição de banco e cache

Armazene um geohash de comprimento fixo ao lado de cada registro para que varreduras de intervalo e shards de cache agrupem locais próximos sem índices de ponto flutuante.

Agrupamento em mapas e rótulos de tile

Agrupe pinos por prefixos compartilhados em uma precisão parecida com o zoom escolhido e, depois, expanda apenas as células que precisam de detalhe.

Tokens curtos de local em URLs

Substitua longas strings de consulta de coordenadas por um geohash compacto que ainda recupera uma célula conhecida quando decodificado em outro lugar.

Que precisão devo usar?

Use menos caracteres para grandes regiões e mais para células finas. Valores em torno de sete a nove são comuns para a escala de quarteirão; doze é o máximo que esta ferramenta aceita.

Quanto custa?

A ferramenta da página é grátis no seu navegador. Entradas inválidas não são cobradas.

Por que lugares próximos começam com o mesmo geohash?

Porque as células se encaixam umas nas outras: cada caractere a mais divide a célula anterior em partes menores. Dois lugares cujos geohashes coincidem nos sete primeiros caracteres ficam na mesma célula ampla, o que permite buscas por prefixo e agrupamento no mapa.

Uma célula de geohash tem o mesmo tamanho em todo o planeta?

Não. As células são retângulos em graus, não círculos de área igual: perto dos polos, uma célula é bem mais estreita de leste a oeste, em metros, do que perto do equador. Para uma busca por raio exata, calcule a distância com as coordenadas originais.

Posso digitar coordenadas em graus, minutos e segundos?

Não diretamente. A ferramenta espera graus decimais no sistema WGS84, sem letras de ponto cardeal nem unidades. Converta antes as coordenadas em graus, minutos e segundos ou as referências de grade.

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.

POSThttps://api.kit.forhosting.com/geo/geohash-encode

Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.

curl -X POST https://api.kit.forhosting.com/geo/geohash-encode \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"latitude":37.7749,"longitude":-122.4194,"precision":9}'
{
  "latitude": 37.7749,
  "longitude": -122.4194,
  "precision": 9
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "geo.geohash_encode",
  "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.

por chamadaUS$ 0,002

Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.

HTTPCódigoO que significa
401unauthorizedToken ausente ou inválido. Confira o header Authorization.
402insufficient_balanceSaldo insuficiente para esta tarefa. Faça uma recarga e tente de novo.
404unknown_typeEsse tipo de tarefa não existe. Confira o campo type no catálogo.
429rate_limitedMuitas requisições em pouco tempo. Espere um instante e tente de novo.

Esta capacidade recebe latitude, longitude e um comprimento de precisão e, então, devolve a string geohash junto com o retângulo delimitador da célula.

O que um geohash realmente representa

Geohash é um esquema de codificação público que intercala os bits de longitude e latitude e, em seguida, empacota esses bits de cinco em cinco em um alfabeto de 32 caracteres que omite de propósito as letras ambíguas.

Como escolher a precisão e enviar as coordenadas

Envie graus decimais no globo WGS84: latitude de menos noventa a noventa, longitude de menos cento e oitenta a cento e oitenta. A resposta ecoa as entradas que você enviou, o geohash resultante e os limites de latitude/longitude da célula que essa string denota. Esses limites são os intervalos com que o codificador terminou após o último bit, para que você verifique a cobertura sem decodificar em separado. Se a precisão for menor que um, ou se alguma coordenada ficar fora de sua faixa legal, a chamada falha com invalid_input e não é cobrada.

Onde as células codificadas se encaixam em pipelines reais

Rode a ferramenta gratuita no navegador para inspecionar um único local, ou chame a API quando precisar da mesma codificação dentro de uma automação, a US$ 0,002 por requisição bem-sucedida.

O que este codificador geohash retorna?

Ele retorna a string geohash, a latitude e a longitude que você enviou, o comprimento de precisão e o retângulo delimitador da célula que essa string identifica.

Quando a codificação falha?

Ela falha com invalid_input quando a precisão é menor que um (ou maior que doze), quando a latitude está fora de −90…90, quando a longitude está fora de −180…180, ou quando um número obrigatório está ausente ou não é finito.

O resultado é o mesmo no navegador e na API?

Sim. Ambos rodam o mesmo codificador puro em lib.js, então entradas idênticas produzem strings geohash e retângulos delimitadores idênticos.

Ver a documentação completa do KIT →