Geohash Encoder Decoder - Sistema de celdas de cuadrícula
Herramienta Geohash gratis: codificar/decodificar códigos geohash, ver celdas de cuadrícula, encontrar vecinos. Convierte coordenadas a geohash para búsqueda proximidad.
¿Qué es Geohash?
Geohash es un sistema de geocodificación que codifica coordenadas geográficas (latitud/longitud) en una cadena alfanumérica corta. Desarrollado por Gustavo Niemeyer en 2008, divide el mundo en una cuadrícula jerárquica donde cada carácter añade precisión a la ubicación.
Un geohash como 'w7p9v0rr' representa un área rectangular específica en la Tierra. Cuanto más largo el geohash, más pequeña y precisa el área. Esto hace que geohash sea perfecto para búsquedas de proximidad, indexación espacial y consultas basadas en ubicación en bases de datos.
Características clave de Geohash:
- Estructura jerárquica: Cadenas más largas representan áreas más pequeñas dentro de más grandes
- Propiedad de proximidad: Geohashes similares están geográficamente cerca (con algunas excepciones)
- Fácil de usar: Comparación simple de cadenas para verificaciones aproximadas de proximidad
- Amigable con bases de datos: Se puede indexar como cadenas para consultas espaciales rápidas
- Seguro para URL: Usa caracteres base-32 (0-9, a-z excluyendo a, i, l, o)
Geohash se usa ampliamente en servicios basados en ubicación, bases de datos NoSQL (MongoDB, Redis) y aplicaciones de mapas para gestión eficiente de datos espaciales.
Cómo funciona Geohash
Geohash usa un sistema de codificación base-32 que divide progresivamente la Tierra en celdas rectangulares más pequeñas. Cada carácter en la cadena geohash representa un paso en esta subdivisión jerárquica:
Niveles de precisión y tamaños de celda:
- 1 carácter: ~5.000km × 5.000km (nivel continental)
- 3 caracteres: ~156km × 156km (nivel ciudad)
- 5 caracteres: ~5km × 5km (vecindario)
- 7 caracteres: ~150m × 150m (nivel calle)
- 9 caracteres: ~5m × 5m (nivel edificio)
- 12 caracteres: ~4cm × 2cm (precisión sub-métrica)
Proceso de codificación:
El algoritmo alterna entre bits de longitud y latitud, dividiendo el espacio de coordenadas por la mitad con cada bit. Cada 5 bits se codifican como un solo carácter base-32, construyendo la cadena geohash de izquierda a derecha.
Búsqueda de vecinos:
Geohash proporciona búsqueda eficiente de vecinos calculando celdas de cuadrícula adyacentes. Esto es útil para consultas 'encontrar ubicaciones cercanas', aunque los casos de frontera requieren manejo especial.
Casos de uso para Geohash
Geohash es esencial en varias aplicaciones basadas en ubicación:
- Búsqueda de proximidad: Encontrar puntos de interés cercanos dentro de un prefijo geohash
- Indexación espacial: Organizar datos de ubicación en bases de datos para consultas rápidas
- Agrupamiento: Agrupar ubicaciones cercanas truncando la precisión geohash
- Almacenamiento en caché: Usar geohash como claves de caché para datos basados en ubicación
- Acortamiento de URL: Compartir ubicaciones aproximadas en URLs cortas
- Fragmentación de base de datos: Distribuir datos de ubicación entre servidores por prefijo geohash
Geohash vs otros sistemas
Comparando Geohash con otros sistemas de geocodificación:
- Geohash vs Lat/Lon: Más compacto, más fácil de buscar por prefijo, pero menos preciso
- Geohash vs QuadKeys: Concepto similar, pero codificación diferente (base-32 vs base-4)
- Geohash vs Plus Codes: Geohash usa precisión variable, Plus Codes tienen formato fijo
- Geohash vs H3: H3 usa hexágonos (mejor forma), geohash usa rectángulos (más simple)
Elige geohash para indexación de bases de datos y búsquedas de proximidad basadas en prefijos. Usa otros sistemas cuando necesites códigos legibles para humanos (Plus Codes) o mejores propiedades espaciales (H3).
Trabajando con vecinos
Geohash proporciona 8 celdas vecinas (N, NE, E, SE, S, SO, O, NO) para cada ubicación. Esto es útil para expandir áreas de búsqueda:
- Proximidad simple: Consultar el geohash principal y sus 8 vecinos (9 celdas en total)
- Casos de borde: Ubicaciones cerca de límites de celda pueden requerir verificaciones de vecinos
- Búsqueda de radio: Usar múltiples niveles de precisión y vecinos para áreas circulares
- Actualizaciones en tiempo real: Monitorear cambios de geohash mientras los objetos se mueven entre celdas
Ten en cuenta que los vecinos de geohash no manejan perfectamente todos los casos de borde (especialmente en límites de longitud), por lo que pueden seguir siendo necesarios cálculos de distancia para consultas de proximidad precisas.