Quelle est la précision d'un Geohash

20

Je voudrais connaître la précision d'un geohash avec une longueur donnée. S'il existe une formule «simple» que vous pouvez utiliser pour le calculer, ce serait extra-cool.

Wikipedia répertorie la précision jusqu'à 8 caractères:

#   km
1   ±2500
2   ±630
3   ±78
4   ±20
5   ±2.4
6   ±0.61
7   ±0.076
8   ±0.019
Gundon
la source
1
Qu'est-ce que vous voulez savoir?
Vince
La précision lors de l'utilisation de geohashes avec 9, 10, 11 .. caractères
Gundon
1
En ce qui concerne cela, ce n'est pas tant le nombre de décimales que vous avez, mais le nombre qui est pertinent. Voir ici pour une réponse à votre question: gis.stackexchange.com/questions/8650/… , mais faites attention à la différence entre exactitude et précision .
Martin
L' article de Wikipedia sur Geohash déclare également que "chaque bit suivant divise par deux l'erreur." Ce n'est pas l'erreur km (ou même l'erreur de degré décimal), mais plutôt la fenêtre / plage d'emplacements possibles.
Erica
Merci d'avoir mentionné cela Erica. J'ai compris cela, mais je ne me suis peut-être pas fait comprendre assez clairement. @Martin Geohashes ne sont pas la même chose que les coordonnées lat / long, bien qu'elles soient dérivées de cela .. Je ne pense pas que cette question soit un double de l'autre. Si c'était le cas: pouvez-vous me dire la fenêtre km d'un geohash à 9 caractères?
Gundon

Réponses:

33

donc un symbole (lettres ou chiffres) est la base 32 (8 bits) Chaque premier bit est utilisé pour une fenêtre haute ou basse, puis les bits suivants divisent la précision par 2. (donc divisez par 8 dans le meilleur des cas) mais il y a une alternance entre lat et longue précision, il finit donc par diviser par 4 et 8 alternativement.

#   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

Notez que, comme mentionné sur la page Wiki, ces valeurs proviennent d'un emplacement près de l'équateur, où un degré a presque la même longueur en X et Y. Pour une information plus précise, vous devez partir des erreurs lat et long, et calculer la précision km le long de l'axe X en fonction de la latitude de votre position.

radouxju
la source
Je suis entre écrire une autre réponse ou un commentaire, mais c'est parti. La réponse est logiquement correcte mais les chiffres sont tout à fait faux. Une lettre n'est pas 32 bits mais elle est en base 32, qui n'est que de 5 bits. Une lettre peut être 8 bits, en supposant un caractère ascii mais qui n'a pas 256 caractères visibles, ce qui défie le but de lisibilité de geohash. Lorsque vous avez base32, vous pouvez utiliser un alphabet limité pour représenter 5 bits. Puisqu'il s'agit d'un nombre impair, avec chaque lettre, vous pouvez obtenir 3lat, 2lon ou 2lat, 3long, ce que fait geohash est également alternatif, donc c'est 3lat, 2lon puis 2lat, 3lon afin que vous obteniez une distribution uniforme.
auselen
Merci pour votre commentaire. Je vais vérifier et mettre à jour ma réponse en fonction de votre commentaire.
radouxju