Ricerca di vicini geohash
Inserisca un geohash e ottenga le otto celle che lo circondano, da nord a nord-ovest: u4pruyd ha u4pruyf a nord e u4pruye a est, tutte con lo stesso numero di caratteri. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Stringa geohash
- u4pruyd
- Precisione
- 7
- N
- u4pruyf
- NE
- u4pruyg
- E
- u4pruye
Uno strumento di ricerca dei vicini geohash trasforma l'identificatore di una cella nelle otto celle che condividono un bordo o un angolo con essa. Incolli un geohash base32 — qualsiasi precisione da uno a dodici caratteri — e lo strumento percorre le classiche tabelle dei vicini pari e dispari per emettere nord, nord-est, est, sud-est, sud, sud-ovest, ovest e nord-ovest alla stessa lunghezza. Indici spaziali, cache di prossimità e tile di mappa hanno spesso bisogno di quel vicinato di Moore senza decodificare prima ogni cella in latitudine e longitudine.
Cosa significa l'adiacenza geohash sulla griglia
Un geohash codifica un rettangolo di latitudine-longitudine come una breve stringa base32, interallacciando i bit di longitudine e latitudine e raggruppandoli in caratteri da cinque bit. Le celle adiacenti alla stessa precisione sono gli otto rettangoli del vicinato di Moore che toccano la cella centrale lungo un bordo o un angolo.
Poiché i bit alternano per parità, il carattere immediatamente a nord di un dato ultimo carattere non segue la stessa tabella quando la lunghezza della stringa è pari o dispari; i percorsi di vicini di qualità produttiva mantengono quindi due stringhe di ricerca per direzione, più una tabella dei bordi che indica quando l'ultimo carattere impone un passo al livello genitore. I vicini est e ovest si avvolgono sull'antimeridiano, così una cella sul bordo destro del globo ha un vicino orientale sensato sul bordo sinistro.
Nord e sud non attraversano i poli: se una cella si trova già sul bordo nord o sud della griglia globale, chiedere un ulteriore passo in quella direzione è fuori intervallo e questo strumento lo rifiuta. La precisione è preservata dall'inizio alla fine — se passa sette caratteri, ottiene vicini di sette caratteri — così può unire il risultato direttamente nella stessa famiglia di bucket dell'indice senza ricodificare.
Questo contratto è ciò di cui backend di mappe, espansori di raggio di consegna e test unitari delle librerie geohash hanno davvero bisogno quando espandono una cella nel suo anello di otto.
Consigli pratici, limiti e ricerche correlate
Mantenga la precisione nell'intervallo pubblicato da uno a dodici caratteri; gli hash più lunghi vengono rifiutati affinché i percorsi intermedi verso il genitore restino limitati e i risultati interoperabili con le impostazioni predefinite delle librerie comuni. Per costruire un anello k più grande degli otto immediati, chiami questo strumento su ogni cella di frontiera e rimuova i duplicati — la capacità restituisce solo il primo anello affinché il comportamento resti semplice e memorizzabile in cache.
Questa pagina si rivolge a chi cerca vicini geohash, celle geohash adiacenti o uno strumento geohash nord-sud-est-ovest; non è un codificatore latitudine-longitudine, né un decodificatore verso bounding box, né una ricerca per raggio in chilometri. Preferisca questa capacità quando dispone già di una stringa geohash e le servono solo gli otto adiacenti alla stessa precisione; se la sua sorgente è una coppia di coordinate, codifichi prima con un codificatore dedicato e poi espanda.
Le verifiche di andata e ritorno sono facili: scelga un esempio noto come dqcjq, confermi che gli otto vicini corrispondono a una libreria affidabile e poi verifichi che un carattere non valido come la lettera a fallisca sempre con il codice di errore documentato.
Casi d'uso
Espandere una cella per query di prossimità
I servizi backend che indicizzano punti per geohash interrogano la cella centrale più i suoi otto vicini per catturare i punti che cadono appena oltre il confine di una cella.
Anelli di tile e mappe di calore
Le pipeline di visualizzazione espandono un geohash selezionato nel vicinato di Moore per evidenziare le tile adiacenti senza decodificare prima ogni cella in lat/lon.
Domande frequenti
Cosa restituisce questo strumento di vicini geohash?
Le otto celle adiacenti alla stessa precisione: nord, nord-est, est, sud-est, sud, sud-ovest, ovest e nord-ovest, più un oggetto neighbors, un elenco ordinato e la precisione.
Quali caratteri sono validi in un geohash?
Le cifre base32 0–9 e le lettere bcdfghjkmnpqrstuvwxyz.
Questo strumento codifica o decodifica latitudine e longitudine?
No. Espande soltanto una stringa geohash esistente nelle sue otto celle adiacenti alla stessa precisione.
La ricerca di vicini geohash è gratuita?
Lo strumento del browser è gratuito e funziona in locale.
Perché cercare nelle celle vicine e non in un solo geohash?
Due punti molto vicini possono cadere ai lati opposti del confine di una cella e ricevere geohash diversi. Cercando nella cella centrale e nelle otto vicine si ritrovano quei punti, e la ricerca di prossimità non perde risultati vicini.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo 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)Esempio di richiesta
{
"geohash": "u4pruyd"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.geohash_neighbors",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_precision | 12 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Caratteri fuori alfabeto, stringhe vuote, precisione eccessiva e passi verso nord o sud sul bordo polare restituiscono un chiaro errore invalid_input invece di una cella sbagliata silenziosa. Il percorso è aritmetica di stringhe pura e deterministica — niente rete, niente semi casuali, niente dipendenza dall'orologio — quindi l'esecutore gratuito del browser e l'API prepagata restituiscono lo stesso JSON ogni volta che Lei li chiama con lo stesso geohash.
Come chiamare l'API e cosa restituisce
Gli spazi iniziali e finali vengono rimossi e le lettere convertite in minuscolo prima dell'elaborazione, così un input del client con maiuscole miste non crea due hash per la stessa cella. In caso di successo la risposta riporta il geohash normalizzato e la sua precisione, restituisce un oggetto neighbors con le chiavi n, ne, e, se, s, sw, w e nw, ripete quelle otto stringhe come campi di primo livello per i consumatori piatti, fornisce list come array ordinato degli stessi otto valori, imposta count a otto e include un breve messaggio in inglese. Invii un corpo JSON con un unico campo stringa obbligatorio, geohash (alias hash e gh). Il valore deve contenere da uno a dodici caratteri dell'alfabeto base32 geohash: le cifre da zero a nove e le lettere b c d e f g h j k m n p q r s t u v w x y z — le lettere a, i, l e o sono assenti di proposito e non superano la validazione. Una validazione fallita — campo mancante, valore non stringa, vuoto dopo la rimozione, carattere illegale, precisione superiore a dodici o passo nord o sud sul bordo polare — restituisce invalid_input e non viene mai addebitata. Il prezzo è una tariffa fissa di $0.002 per richiesta riuscita, con voce unitaria e prezzo unitario marginale zero.
Consigli pratici, limiti e ricerche correlate
Preferisca il nome di campo principale geohash nei nuovi client; gli alias hash e gh esistono per invii di moduli brevi e vecchi frammenti di codice. I bordi polari sono rari a precisione cittadina, ma compaiono negli hash di un carattere e in alcuni di due vicino ai poli; tratti lì invalid_input come un confine rigido invece di inventare una cella ribaltata. Le attività fallite che restituiscono invalid_input non consumano saldo prepagato, il che mantiene economici gli script esplorativi quando prova di proposito alfabeti non validi.
Casi di integrazione
Test unitari per le librerie geohash
Generi mappe di vicini attese e deterministiche per precisione pari e dispari, più i rifiuti per alfabeto non valido e bordo polare, per kata di programmazione e file golden delle librerie.
Domande tecniche
Est e ovest fanno il giro del globo?
Sì. La longitudine si avvolge sull'antimeridiano. Nord e sud non attraversano i poli; i passi sul bordo polare restituiscono invalid_input.