Qual è la precisione di un Geohash


20

Mi piacerebbe conoscere la precisione di un geohash con una determinata lunghezza. Se esiste una formula "semplice" che puoi utilizzare per calcolarla, sarebbe molto interessante.

Wikipedia elenca la precisione fino a 8 caratteri:

#   km
1   ±2500
2   ±630
3   ±78
4   ±20
5   ±2.4
6   ±0.61
7   ±0.076
8   ±0.019

1
Che cosa vuoi sapere?
Vince,

La precisione quando si hanno geohash con 9, 10, 11 .. personaggi
Gundon,

1
Quando si tratta di questo, non si tratta tanto di quanti decimali hai ma quanti sono rilevanti. Vedi qui per una risposta alla tua domanda: gis.stackexchange.com/questions/8650/… , ma fai attenzione alla differenza tra accuratezza e precisione .
Martin

L' articolo di Wikipedia su Geohash afferma inoltre che "ogni bit successivo dimezza [l'errore]". Questo non è l'errore km (o anche l'errore in gradi decimali), ma piuttosto la finestra / intervallo di posizioni possibili.
Erica

Grazie per aver detto che Erica. L'ho capito, ma forse non mi sono chiarito abbastanza. @Martin Geohashes non è la stessa cosa di lat / long-coordinate, anche se derivano da quello .. Non penso che questa domanda sia un duplicato dell'altra. Se fosse: puoi dirmi la finestra km di un geohash con 9 caratteri?
Gundon,

Risposte:


33

quindi un simbolo (lettere o cifre) è base 32 (8 bit) Ogni primo bit viene utilizzato per la finestra alta o bassa, quindi i bit successivi dividono la precisione per 2. (quindi dividere per 8 nel migliore dei casi) ma c'è un'alternanza tra lat e long precision, quindi finisce per dividersi per 4 e 8 in alternativa.

#   km      
1   ± 2500
2   ± 630
3   ± 78
4   ± 20
5   ± 2.4
6   ± 0.61
7   ± 0.076
8   ± 0.019
9   ± 0.0024
10  ± 0.00060
11  ± 0.000074

Nota che, come menzionato nella pagina Wiki, quei valori provengono da una posizione vicino all'equatore, dove un grado ha quasi la stessa lunghezza in X e Y. Per informazioni più accurate, dovresti iniziare dal lat e dagli errori lunghi, e calcola la precisione dei km lungo l'asse X in base alla latitudine della tua posizione.


Sono tra la scrittura di un'altra risposta o un commento, ma qui va. La risposta è logicamente corretta ma i numeri sono chiaramente sbagliati. Una lettera non è a 32 bit ma è nella base 32, che è solo 5 bit. Una lettera può essere 8 bit, assumendo un carattere ASCII ma che non ha 256 caratteri visibili che sfidano lo scopo di leggibilità di geohash. Quando hai base32 puoi usare un alfabeto limitato per rappresentare 5 bit. Poiché questo è un numero dispari, con ogni lettera puoi ottenere 3lat, 2lon o 2lat, 3long, anche ciò che fa geohash è alternato, quindi è 3lat, 2lon poi 2lat, 3lon in modo da ottenere una distribuzione uniforme.
auselen,

grazie per il tuo commento. Controllerò e aggiornerò la mia risposta in base al tuo commento.
Radouxju,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.