Codificador Decodificador Geohash - Sistema de Grade Espacial

Ferramenta Geohash gratuita: codifique/decodifique códigos geohash, visualize células de grade, encontre vizinhos. Converta coordenadas para geohash.

O que é Geohash?

Geohash é um sistema de geocodificação que codifica coordenadas geográficas (latitude/longitude) em uma string alfanumérica curta. Desenvolvido por Gustavo Niemeyer em 2008, ele divide o mundo em uma grade hierárquica onde cada caractere adiciona precisão à localização.

Um geohash como 'w7p9v0rr' representa uma área retangular específica na Terra. Quanto mais longo o geohash, menor e mais precisa a área. Isso torna o geohash perfeito para buscas de proximidade, indexação espacial e consultas baseadas em localização em bancos de dados.

Recursos principais do Geohash:

  • Estrutura hierárquica: Strings mais longas representam áreas menores dentro de maiores
  • Propriedade de proximidade: Geohashes similares estão geograficamente próximos (com algumas exceções)
  • Fácil de usar: Comparação simples de strings para verificações aproximadas de proximidade
  • Amigável a banco de dados: Pode ser indexado como strings para consultas espaciais rápidas
  • Seguro para URL: Usa caracteres base-32 (0-9, a-z excluindo a, i, l, o)

Geohash é amplamente usado em serviços baseados em localização, bancos de dados NoSQL (MongoDB, Redis) e aplicações de mapeamento para gerenciamento eficiente de dados espaciais.

Como Funciona o Geohash

Geohash usa um sistema de codificação base-32 que progressivamente divide a Terra em células retangulares menores. Cada caractere na string geohash representa um passo nesta subdivisão hierárquica:

Níveis de precisão e tamanhos de célula:

  • 1 caractere: ~5.000km × 5.000km (nível continental)
  • 3 caracteres: ~156km × 156km (nível de cidade)
  • 5 caracteres: ~5km × 5km (bairro)
  • 7 caracteres: ~150m × 150m (nível de rua)
  • 9 caracteres: ~5m × 5m (nível de edifício)
  • 12 caracteres: ~4cm × 2cm (precisão sub-métrica)

Processo de codificação:

O algoritmo alterna entre bits de longitude e latitude, dividindo o espaço de coordenadas pela metade com cada bit. A cada 5 bits são codificados como um único caractere base-32, construindo a string geohash da esquerda para direita.

Encontrando vizinhos:

Geohash fornece pesquisa eficiente de vizinhos calculando células de grade adjacentes. Isso é útil para consultas de 'encontrar localizações próximas', embora casos de borda exijam tratamento especial.

Casos de Uso para Geohash

Geohash é essencial em várias aplicações baseadas em localização:

  • Busca de Proximidade: Encontre pontos de interesse próximos dentro de um prefixo geohash
  • Indexação Espacial: Organize dados de localização em bancos de dados para consultas rápidas
  • Agrupamento: Agrupe localizações próximas truncando a precisão do geohash
  • Cache: Use geohash como chaves de cache para dados baseados em localização
  • Encurtamento de URL: Compartilhe localizações aproximadas em URLs curtas
  • Fragmentação de Banco de Dados: Distribua dados de localização entre servidores por prefixo geohash

Geohash vs Outros Sistemas

Comparando Geohash com outros sistemas de geocodificação:

  • Geohash vs Lat/Lon: Mais compacto, mais fácil de pesquisar por prefixo, mas menos preciso
  • Geohash vs QuadKeys: Conceito similar, mas codificação diferente (base-32 vs base-4)
  • Geohash vs Plus Codes: Geohash usa precisão variável, Plus Codes têm formato fixo
  • Geohash vs H3: H3 usa hexágonos (melhor forma), geohash usa retângulos (mais simples)

Escolha geohash para indexação de banco de dados e buscas de proximidade baseadas em prefixo. Use outros sistemas quando precisar de códigos legíveis por humanos (Plus Codes) ou melhores propriedades espaciais (H3).

Trabalhando com Vizinhos

Geohash fornece 8 células vizinhas (N, NE, E, SE, S, SW, W, NW) para cada localização. Isso é útil para expandir áreas de pesquisa:

  • Proximidade simples: Consulte o geohash principal e seus 8 vizinhos (9 células no total)
  • Casos de borda: Localizações próximas a limites de células podem exigir verificações de vizinhos
  • Busca de raio: Use múltiplos níveis de precisão e vizinhos para áreas circulares
  • Atualizações em tempo real: Monitore mudanças de geohash conforme objetos se movem entre células

Note que vizinhos geohash não lidam perfeitamente com todos os casos de borda (especialmente em limites de longitude), então cálculos de distância ainda podem ser necessários para consultas de proximidade precisas.