Codificador de geohash
Convierta una latitud y una longitud en un geohash corto: 37,7749 y -122,4194 con nueve caracteres dan 9q8yyk8yt, una clave del tamaño de una manzana que agrupa los lugares cercanos. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Latitud en grados decimales
- 37,7749
- Longitud en grados decimales
- -122,4194
- Precisión
- 9
- Geohash
- 9q8yyk8yt
Un geohash convierte un par de coordenadas geográficas en una cadena corta en base32 que identifica una celda rectangular sobre la Tierra. Los puntos cercanos comparten prefijos comunes largos, lo que hace que esta codificación resulte útil para búsquedas de proximidad, claves de teselas, particiones de caché y tokens de ubicación legibles por personas. Esta capacidad toma la latitud, la longitud y una longitud de precisión, y luego devuelve la cadena geohash junto con el recuadro delimitador de la celda. El algoritmo es aritmética pura: sin llamadas de red, sin muestreo aleatorio y sin reloj. Una precisión no válida o unas coordenadas fuera de rango se rechazan con un error de entrada claro en lugar de una celda equivocada en silencio.
Qué representa realmente un geohash
Geohash es un esquema de codificación público que intercala los bits de la longitud y la latitud, y luego agrupa esos bits de cinco en cinco en un alfabeto de 32 caracteres que omite deliberadamente las letras ambiguas. Cada carácter que añade divide la celda aproximadamente a la mitad, primero en una dimensión y luego en la otra, de modo que las cadenas más largas describen rectángulos más pequeños.
Un hash de un solo carácter cubre una franja enorme del planeta; nueve o diez caracteres suelen bastar para una manzana o la huella de un edificio, según la latitud. Como los prefijos se anidan, dos ubicaciones que comparten los siete primeros caracteres caen dentro de la misma celda gruesa, que es justo lo que hace prácticas las consultas por prefijo y la agrupación en mapas.
La cadena no es un hash criptográfico: puntos distintos pueden compartir un prefijo a propósito, y la misma precisión siempre produce la misma cadena para las mismas coordenadas. Úselo cuando necesite una clave compacta y segura para URL de un lugar en lugar de un par completo de coma flotante en cada línea de registro o fila de base de datos.
Cómo elegir la precisión y enviar las coordenadas
Envíe grados decimales sobre el globo WGS84: la latitud de menos noventa a noventa, la longitud de menos ciento ochenta a ciento ochenta. La precisión es el número de caracteres base32 que desea recibir, de uno a doce. Los valores bajos convienen a cubos de país o región; los medios, a ciudades y barrios; los altos, a celdas de escala interior o de seguimiento de vehículos.
La respuesta repite las entradas que envió, el geohash resultante y los límites de latitud y longitud de la celda que denota esa cadena. Esos límites son los intervalos con los que terminó el codificador tras el último bit, así que puede verificar la cobertura sin decodificar por separado. Los campos faltantes y los valores no numéricos fallan del mismo modo.
Prefiera números decimales estables en lugar de cadenas con unidades o letras cardinales; convierta las referencias DMS o de cuadrícula antes de llamar.
Dónde encajan las celdas codificadas en flujos reales
Los equipos usan los geohash como claves de partición en almacenes de series temporales, como identificadores de teselas de mapa para cachés de cliente, como prefijos compartidos para filtros de puntos cercanos y como tokens cortos en URL o cargas QR cuando un par completo de lat/lon resulta incómodo. Como la transformación es determinista y sin efectos secundarios, puede regenerar la misma clave en el navegador, en un worker o en un trabajo por lotes y esperar resultados idénticos byte a byte para las mismas entradas.
Eso importa para las pruebas de referencia, las réplicas multirregión y las herramientas sin conexión que no deben desviarse. Recuerde que las celdas geohash son rectángulos en el espacio de grados, no círculos perfectos de igual área: cerca de los polos, una celda larga es mucho más estrecha en metros de este a oeste que la misma longitud cerca del ecuador. Para una búsqueda estricta por radio, calcule la distancia sobre los puntos originales; use el hash para agrupar y recuperar candidatos, y luego refine.
Qué puede hacer con ella
Claves de partición de base de datos y caché
Guarde un geohash de longitud fija junto a cada registro para que los escaneos por rango y los fragmentos de caché agrupen ubicaciones cercanas sin índices de coma flotante.
Agrupación en mapas y etiquetas de teselas
Agrupe los marcadores por prefijos compartidos a una precisión similar al zoom elegido, y luego expanda solo las celdas que necesiten detalle.
Tokens de ubicación cortos en URL
Reemplace las largas cadenas de consulta de coordenadas por un geohash compacto que aún recupera una celda conocida cuando se decodifica en otro lugar.
Preguntas frecuentes
¿Qué devuelve este codificador de geohash?
Devuelve la cadena geohash, la latitud y la longitud que envió, la longitud de precisión y el recuadro delimitador de la celda que identifica esa cadena.
¿Qué precisión debería usar?
Use menos caracteres para regiones grandes y más para celdas finas. Los valores en torno a siete y nueve son habituales para la escala de una manzana; doce es el máximo que acepta esta herramienta.
¿Cuánto cuesta?
La herramienta de la página es gratis en su navegador. Las entradas no válidas no se cobran.
¿Por qué los lugares cercanos comparten el inicio de su geohash?
Porque las celdas se anidan: cada carácter de más divide la celda anterior en trozos más pequeños. Dos lugares cuyos geohashes coinciden en los siete primeros caracteres están en la misma celda amplia, y eso permite buscar por prefijo y agrupar puntos en un mapa.
¿Una celda de geohash mide lo mismo en todo el planeta?
No. Las celdas son rectángulos en grados, no círculos de igual superficie: cerca de los polos una celda es mucho más estrecha de este a oeste, en metros, que junto al ecuador. Para una búsqueda por radio estricta, mida la distancia con las coordenadas originales.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
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}'const res = await fetch("https://api.kit.forhosting.com/geo/geohash-encode", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"latitude": 37.7749,
"longitude": -122.4194,
"precision": 9
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/geohash-encode",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"latitude": 37.7749,
"longitude": -122.4194,
"precision": 9
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/geohash-encode", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"latitude":37.7749,"longitude":-122.4194,"precision":9}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"latitude":37.7749,"longitude":-122.4194,"precision":9}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/geohash-encode", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"latitude": 37.7749,
"longitude": -122.4194,
"precision": 9
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.geohash_encode",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Cómo elegir la precisión y enviar las coordenadas
Si la precisión es inferior a uno, o si alguna coordenada queda fuera de su rango legal, la llamada falla con invalid_input y no se factura.
Dónde encajan las celdas codificadas en flujos reales
Ejecute la herramienta gratuita del navegador para inspeccionar una sola ubicación, o llame a la API cuando necesite la misma codificación dentro de una automatización por $0.002 por solicitud correcta.
Preguntas técnicas
¿Cuándo falla la codificación?
Falla con invalid_input cuando la precisión es inferior a uno (o superior a doce), cuando la latitud queda fuera de −90…90, cuando la longitud queda fuera de −180…180, o cuando falta un número requerido o no es finito.
¿Es el resultado el mismo en el navegador y en la API?
Sí. Ambos ejecutan el mismo codificador puro en lib.js, así que entradas idénticas producen cadenas geohash y recuadros delimitadores idénticos.