Encodeur et décodeur de Geohash
Conçu pour la confidentialité — fonctionne entièrement dans votre navigateur
En mode encode, saisissez latitude et longitude (avec un curseur de précision) pour obtenir un geohash. En mode decode, collez un hash pour voir les coordonnées du centre et les coins sud-ouest/nord-est de sa cellule. Utile pour les index spatiaux, les recherches de proximité et le stockage pseudonymisé de positions.
Ce qu’encode réellement un geohash
Le geohash entrelace les bits de longitude et de latitude puis encode le tout en base32 avec un alphabet maison (0-9 et b-z sans a/i/l/o). Chaque caractère apporte 5 bits, alternant entre raffinement longitudinal et latitudinal. La chaîne courte qui en sort est URL-safe et sa relation de préfixe traduit directement l’imbrication spatiale : tout geohash commençant par "dr5ru" se trouve dans la cellule dr5ru.
Précision et taille de cellule
À précision 1, la planète est divisée en 32 cellules d’environ 5 000 km de large. Précision 5 (~ 4,9 km à l’équateur) convient au regroupement à l’échelle d’un quartier. Précision 9 (~ 5 m) cadre au niveau d’un bâtiment. Précision 12 descend à ~ 4 cm et n’est généralement nécessaire qu’en topographie. Les cellules rétrécissent en se rapprochant des pôles.
À quoi servent les geohashes
Les préfixes de chaîne s’indexent très bien dans PostgreSQL, Redis, DynamoDB et SQLite. Pour trouver les points à moins de 5 km d’une cible, calculez son geohash à précision 5 et recherchez les préfixes — bien moins coûteux que des requêtes de distance orthodromique. Le problème de bord de cellule existe ; on requête aussi les huit cellules voisines. Geohash est plus simple et plus ancien que S2/H3 et reste le plus léger pour la proximité chaude.
Questions fréquentes
- Pourquoi la précision 5 couvre-t-elle toute une ville ?
- Chaque caractère apporte 5 bits, donc précision 5 = 25 bits ≈ cellules de 4,9 km × 4,9 km près de l’équateur. Une ville de quelques kilomètres tient dans une cellule, c’est pour cela que beaucoup d’apps de VTC ou de livraison regroupent conducteurs et commandes par geohash de précision 5 pour matcher vite.
- Deux points proches avec geohashes différents — bug ?
- Pas un bug, un artefact de grille. Deux points de part et d’autre d’un bord de cellule ne partagent aucun préfixe, même à 1 m. En prod on requête le hash cible plus ses huit voisins (anneau 3×3).
- Quel alphabet utilise le geohash ?
- 0-9 plus b-z sans a, i, l, o. Cette exclusion évite la confusion avec 0/1 sur des polices peu contrastées. C’est du base32 avec ce alphabet personnalisé, différent du base32 RFC 4648.
- Comparaison entre geohash, S2 et H3ƒ ?
- Geohash est le plus simple et le plus ancien des trois. S2 et H3 emploient des grilles sphériques ou hexagonales qui supportent mieux la distorsion polaire. Pour la plupart des cas de proximité applicative, geohash suffit ; pour la navigation à l’échelle planétaire, S2/H3 paient.
- Peut-on indexer les geohashes en toute sécurité dans PostgreSQL ?
- Oui. Traitez le hash comme une colonne text avec un index btree et les recherches par préfixe (LIKE 'dr5ru%') deviennent ultra rapides. Pour des requêtes spatiales avancées, complétez avec PostGIS ; sinon le préfixe suffit.
- Toova journalise-t-il les coordonnées que j’encode ?
- Non. Encode et decode tournent en JavaScript dans cette page. Coordonnées et hash résultant n’atteignent jamais un serveur Toova.