Más juegos en WuGames.ioPatrocinadoDescubre juegos de navegador gratis — juega al instante, sin descargas ni registro.Jugar

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.

About Geohash Encoder Decoder - Sistema de celdas de cuadrícula

Geohash Encoder Decoder convierte latitud/longitud en las cadenas alfanuméricas cortas ("w7p9v0rr") usadas por Redis GEO, MongoDB, Cassandra y otras bases de datos para consultas de proximidad rápidas. Codifica un punto con precisión 1-12 para obtener el geohash más su caja delimitadora, el tamaño de celda y las 8 celdas vecinas (la famosa cobertura de 9 celdas para consultas de proximidad), o decodifica un geohash existente de vuelta a coordenadas. Diseñado para ingenieros backend que construyen funciones de 'encontrar cerca', ingenieros de datos que indexan telemetría IoT, plataformas de ride-sharing y delivery que particionan datos de ubicación por prefijo, y cualquiera explorando indexación espacial. Copia las 9 celdas como CSV para usar directamente en cláusulas SQL WHERE. Prueba también nuestro Distancia y Rumbo y Validador GeoJSON.

Preguntas frecuentes

Geohash es un sistema jerárquico de indexación espacial inventado por Gustavo Niemeyer en 2008 que codifica un par latitud-longitud en una cadena alfanumérica corta como "u4pruydqqvj". Cada carácter adicional multiplica la precisión por unos 32 — 5 caracteres ≈ ±2,4 km, 7 ≈ ±76 m, 9 ≈ ±2,4 m, 11 ≈ ±7 cm. Las cadenas que comparten prefijo representan ubicaciones cercanas, lo que hace al geohash muy útil para indexación espacial en bases de datos (Redis GEOADD, MongoDB 2dsphere, Cassandra), consultas de proximidad, deduplicación de puntos GPS cercanos y compartir ubicaciones en URLs amigables. La pega: las celdas no son cuadradas (son el doble de altas que anchas en ciertos niveles) y la proximidad por prefijo se rompe en los bordes — dos puntos a 1 metro pueden tener prefijos distintos si están a ambos lados de una frontera.

El geohash divide la Tierra recursivamente en cuadrículas de 32 celdas (usando base-32 con el alfabeto 0123456789bcdefghjkmnpqrstuvwxyz — sin a, i, l, o para evitar confusión visual). Cada carácter añade 5 bits, alternando refinamiento de longitud y latitud, así que las dimensiones de celda alternan entre relación 2:1 y 1:1. Tamaños aproximados de celda en el ecuador: longitud 1 = 5.000 × 5.000 km, longitud 2 = 1.250 × 625 km, longitud 3 = 156 × 156 km, longitud 4 = 39 × 19,5 km, longitud 5 = 4,9 × 4,9 km, longitud 6 = 1,2 × 0,61 km, longitud 7 = 153 × 153 m, longitud 8 = 38,2 × 19,1 m, longitud 9 = 4,8 × 4,8 m, longitud 10 = 1,2 × 0,6 m, longitud 11 = 15 × 15 cm, longitud 12 = 3,7 × 1,8 cm. Las celdas se encogen con el coseno de la latitud en la dimensión de longitud.

Es el famoso "efecto de borde". Dos puntos a 1 metro pueden caer en celdas diferentes si una frontera geohash pasa entre ellos — y las celdas adyacentes a menudo comparten solo 1 carácter o ninguno. El peor caso es en el ecuador y el meridiano de Greenwich, donde los cuatro cuadrantes (norte/sur y este/oeste) empiezan todos con caracteres distintos (s, t, e, k o similares). Los sistemas en producción lo resuelven consultando no solo tu geohash sino también sus 8 vecinos (N, S, E, O y las cuatro diagonales) y luego filtrando por distancia exacta. Librerías como `geohash-neighbours` o `nodejs-geohash` te dan los 8 vecinos directamente. El mismo arreglo aplica a Z-order y Hilbert — cualquier curva de relleno 1D tiene este problema de discontinuidad.

Cuatro índices espaciales modernos resuelven problemas solapados de forma distinta. Geohash (Niemeyer 2008): cadena base-32, celdas rectangulares, proximidad por prefijo, simple y ubicuo, problemas de borde. Plus Codes/Open Location Code (Google 2015): diseñado para humanos, formato tipo código de área "6PR599X8+8H", integrado en Google Maps, sin necesidad de referencia de país. H3 (Uber 2018): celdas hexagonales en 16 resoluciones, distancia de vecinos uniforme (siempre 6 vecinos), excelente para matching de ride-share y análisis de flujos, salida entero de 64 bits o cadena. S2 (Google, usado en BigQuery y Bing): celdas jerárquicas de curva Hilbert sobre esfera, 30 niveles, celdas aproximadamente equiáreas, usado en YouTube/Google. Geohash para sharding clave-valor simple, H3 para analítica, S2 para indexación global, Plus Codes para direccionamiento — elige según uso.

Un quadkey es el esquema de indexación tras Bing Maps de Microsoft y la mayoría de servidores de tiles Web Mercator. Cada nivel subdivide el mundo en 4 cuadrantes (Q1-Q4) numerados 0-3, así que un quadkey es una cadena de dígitos 0-3 como "02313011120". Geohash usa base-32 (5 bits por carácter) y alterna refinamiento lat/lon; quadkey usa base-4 (2 bits por carácter) y aplica ambos a la vez, dando celdas cuadradas en proyección Web Mercator. Conversión: 1 carácter geohash = 2,5 caracteres quadkey (5 bits ÷ 2 bits). Los quadkeys mapean directamente a tiles de mapa en niveles de zoom 1-23 (zoom = longitud de quadkey), por eso toda URL de tile web tiene esa estructura. Geohash es puramente codificación de coordenadas sin relación con servidor de tiles. Ambos comparten la propiedad de prefijo = celda ancestral.

Patrón estándar: calcula el geohash del centro de búsqueda a una precisión que se ajuste al radio (p. ej. precisión 6 ≈ celdas de 1,2 km, bueno para radios de 1-2 km), encuentra las 8 celdas vecinas, consulta SQL o NoSQL por filas cuyo geohash almacenado empiece por cualquiera de esos 9 prefijos, y luego posfiltra por distancia haversine exacta para eliminar falsos positivos en las esquinas. Redis lo simplifica con `GEOSEARCH ... BYRADIUS` (que usa geohash internamente). PostGIS ofrece `ST_DWithin` sobre columnas `geography`, más preciso pero más lento. Para 1 millón de puntos y consultas de 1 km, el enfoque por prefijo geohash suele ser 10-100× más rápido que bounding box + índice espacial en cargas dominadas por lectura. No olvides la expansión de 8 vecinos — sin ella pierdes 30-50% de los resultados cercanos a los bordes.

El alfabeto es 0123456789bcdefghjkmnpqrstuvwxyz — 32 caracteres elegidos para evitar pares visualmente ambiguos en código escrito o tecleado. Letras excluidas: a (confundible con o en algunas fuentes), i (con 1, l, |), l (L minúscula parece 1 e I), o (parece 0). Esto hace los geohashes seguros para dictar por teléfono y amigables al OCR. ¿Por qué base-32 y no base-16 o base-64? Cinco bits por carácter es un punto dulce: cada carácter refina la precisión 32×, alternando 2-3 bits entre lat y lon, dando celdas aproximadamente cuadradas en la mayoría de precisiones y cadenas legibles de 6-12 caracteres para los usos típicos. Base-64 comprimiría más pero introduce sensibilidad a mayúsculas y complicaciones de URL-encoding. La variante Geohash-36 (alfabeto distinto) existe pero nunca desplazó al original de Niemeyer.

Tres debilidades reales. Primera, forma de celda no uniforme: las celdas de longitud se encogen cerca de los polos (una celda de nivel 7 mide 153×153 m en el ecuador pero solo 76×153 m a 60° de latitud), rompiendo la suposición de que longitud de prefijo = distancia de suelo constante. Segunda, el efecto de borde: celdas adyacentes pueden compartir cero caracteres, así que la proximidad por prefijo necesita expansión de 8 vecinos. Tercera, singularidades en el antimeridiano y los polos: la codificación falla o produce saltos raros cerca de ±180° longitud y ±90° latitud. Evita geohash para ciencia polar, planificación de vuelos transpolares o aplicaciones que necesiten distancia de vecino constante — usa H3 (hexágonos uniformes, 6 vecinos equidistantes en cada resolución) o S2 (cuadrados equiáreos sobre esfera). Para e-commerce global, ride-share y analítica móvil, geohash sigue siendo excelente porque la mayor parte de la población vive entre 60° S y 60° N donde sus rarezas son menores.
Geohash Encoder Decoder - Sistema de celdas de cuadrícula — Herramienta Geohash gratis: codificar/decodificar códigos geohash, ver celdas de cuadrícula, encontrar vecinos. Conviert
Geohash Encoder Decoder - Sistema de celdas de cuadrícula