Buscador de vecinos geohash
Escriba un geohash y obtenga las ocho celdas que lo rodean, de norte a noroeste: u4pruyd tiene al norte u4pruyf y al este u4pruye, todas con el mismo número de caracteres. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Cadena geohash
- u4pruyd
- Precisión
- 7
- N
- u4pruyf
- NE
- u4pruyg
- E
- u4pruye
Un buscador de vecinos geohash convierte el identificador de una celda en las ocho celdas que comparten un borde o una esquina con ella. Pegue un geohash base32 —cualquier precisión de uno a doce caracteres— y la herramienta recorre las clásicas tablas de vecinos pares e impares para emitir norte, noreste, este, sureste, sur, suroeste, oeste y noroeste con la misma longitud. Los índices espaciales, las cachés de proximidad y las teselas de mapa suelen necesitar ese vecindario de Moore sin decodificar antes cada celda a latitud y longitud.
Qué significa la adyacencia geohash en la cuadrícula
Un geohash codifica un rectángulo de latitud y longitud como una cadena base32 corta, intercalando los bits de longitud y latitud y agrupándolos en caracteres de cinco bits. Las celdas adyacentes con la misma precisión son los ocho rectángulos del vecindario de Moore que tocan la celda central por un borde o una esquina.
Como los bits alternan según la paridad, el carácter situado inmediatamente al norte de un último carácter dado no sigue la misma tabla cuando la longitud de la cadena es par que cuando es impar; por eso los recorridos de vecinos de calidad de producción mantienen dos cadenas de búsqueda por dirección, además de una tabla de bordes que indica cuándo el último carácter obliga a subir un nivel al padre.
Los vecinos este y oeste rodean el antimeridiano, de modo que una celda en el extremo derecho del globo tiene un vecino oriental coherente en el extremo izquierdo. El norte y el sur no atraviesan los polos: si una celda ya está en el borde norte o sur de la cuadrícula global, pedir un paso más en esa dirección queda fuera de rango y esta herramienta lo rechaza.
La precisión se conserva de principio a fin: si usted pasa siete caracteres, obtiene vecinos de siete caracteres, de modo que puede unir el resultado directamente a la misma familia de depósitos del índice sin volver a codificar.
Consejos prácticos, límites y búsquedas relacionadas
Mantenga la precisión dentro del rango publicado de uno a doce caracteres; los hashes más largos se rechazan para que los recorridos intermedios por el padre se mantengan acotados y los resultados sigan siendo interoperables con los valores por defecto de las bibliotecas habituales. Cuando construya un anillo k mayor que los ocho inmediatos, llame a esta herramienta en cada celda de la frontera y elimine duplicados: la capacidad solo devuelve el primer anillo para que el comportamiento siga siendo simple y almacenable en caché.
Esta página va dirigida a quienes buscan vecinos geohash, celdas geohash adyacentes o un buscador geohash norte-sur-este-oeste; no es un codificador de latitud-longitud, ni un decodificador a cuadros delimitadores, ni una búsqueda por radio en kilómetros. Prefiera esta capacidad cuando ya dispone de una cadena geohash y solo necesita los ocho adyacentes con la misma precisión; si su origen es un par de coordenadas, codifique primero con un codificador dedicado y luego expanda.
Las comprobaciones de ida y vuelta son fáciles: elija un ejemplo conocido como dqcjq, confirme que los ocho vecinos coinciden con una biblioteca de confianza y luego verifique que un carácter no válido como la letra a siempre falla con el código de error documentado.
Qué puede hacer con ella
Expandir una celda para consultas de proximidad
Los servicios backend que indexan puntos por geohash consultan la celda central más sus ocho vecinos para capturar los puntos que caen justo al otro lado del límite de una celda.
Anillos de teselas de mapa y mapas de calor
Los pipelines de visualización expanden un geohash seleccionado al vecindario de Moore para resaltar teselas adyacentes sin decodificar antes cada celda a latitud y longitud.
Preguntas frecuentes
¿Qué devuelve esta herramienta de vecinos geohash?
Las ocho celdas adyacentes con la misma precisión: norte, noreste, este, sureste, sur, suroeste, oeste y noroeste, además de un objeto neighbors, una lista ordenada y la precisión.
¿Qué caracteres son válidos en un geohash?
Los dígitos base32 0–9 y las letras bcdfghjkmnpqrstuvwxyz.
¿Esto codifica o decodifica latitud y longitud?
No. Solo expande una cadena geohash existente en sus ocho celdas adyacentes con la misma precisión.
¿El buscador de vecinos geohash es gratuito?
La herramienta del navegador es gratuita y se ejecuta en local.
¿Por qué buscar en las celdas vecinas y no solo en un geohash?
Dos puntos muy cercanos pueden quedar a ambos lados del borde de una celda y recibir geohashes distintos. Al buscar en la celda central y en sus ocho vecinas se recuperan esos puntos, y la búsqueda de proximidad no pierde resultados cercanos.
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-neighbors \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"geohash":"u4pruyd"}'const res = await fetch("https://api.kit.forhosting.com/geo/geohash-neighbors", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"geohash": "u4pruyd"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/geohash-neighbors",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"geohash": "u4pruyd"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/geohash-neighbors", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"geohash":"u4pruyd"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"geohash":"u4pruyd"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/geohash-neighbors", 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
{
"geohash": "u4pruyd"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.geohash_neighbors",
"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.
Límites
max_precision | 12 |
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
Los caracteres fuera del alfabeto, las cadenas vacías, la precisión excesiva y los pasos hacia el norte o el sur en el borde polar devuelven un error invalid_input claro en lugar de una celda errónea silenciosa. El recorrido es aritmética de cadenas pura y determinista —sin red, sin semillas aleatorias, sin dependencia del reloj—, de modo que el ejecutor gratuito del navegador y la API prepagada devuelven el mismo JSON cada vez que usted los llama con el mismo geohash.
Cómo llamar a la API y qué devuelve
Los espacios iniciales y finales se recortan y las letras se pasan a minúsculas antes del procesamiento, de modo que una entrada del cliente con mayúsculas mezcladas no crea dos hashes para la misma celda. Si la llamada tiene éxito, la respuesta devuelve el geohash normalizado y su precisión, incluye un objeto neighbors con las claves n, ne, e, se, s, sw, w y nw, repite esas ocho cadenas como campos de primer nivel para los consumidores planos, ofrece list como un array ordenado con los mismos ocho valores, fija count en ocho e incluye un mensaje breve en inglés. Envíe un cuerpo JSON con un único campo de cadena obligatorio, geohash (alias hash y gh). El valor debe tener de uno a doce caracteres del alfabeto base32 de geohash: los dígitos del cero al nueve y las letras b c d e f g h j k m n p q r s t u v w x y z; las letras a, i, l y o están ausentes a propósito y no superan la validación. Una validación fallida —campo ausente, valor que no es cadena, vacío tras el recorte, carácter ilegal, precisión superior a doce o un paso norte o sur en el borde polar— devuelve invalid_input y nunca se cobra. El precio es una tarifa plana de $0.002 por solicitud exitosa, con elemento unitario y precio unitario marginal cero.
Consejos prácticos, límites y búsquedas relacionadas
Prefiera el nombre de campo principal geohash en los clientes nuevos; los alias hash y gh existen para envíos de formularios cortos y fragmentos antiguos. Los bordes polares son raros a precisión de nivel ciudad, pero aparecen en hashes de un carácter y en algunos de dos cerca de los polos; trate ahí invalid_input como un límite duro en lugar de inventar una celda volteada. Las tareas fallidas que devuelven invalid_input no consumen saldo prepagado, lo que mantiene baratos los scripts exploratorios cuando usted prueba alfabetos no válidos a propósito.
Casos de integración
Pruebas unitarias para bibliotecas de geohash
Genere mapas de vecinos esperados y deterministas para precisión par e impar, además de rechazos por alfabeto no válido y borde polar, para katas de programación y archivos golden de bibliotecas.
Preguntas técnicas
¿El este y el oeste dan la vuelta al globo?
Sí. La longitud rodea el antimeridiano. El norte y el sur no atraviesan los polos; los pasos en el borde polar devuelven invalid_input.