Encodeur / décodeur Geohash - Grille spatiale
Outil Geohash gratuit : encodez/décodez des geohash, visualisez les cellules de grille et trouvez les voisins. Convertissez des coordonnées en geohash pour les recherches de proximité et l'indexation spatiale.
Qu'est-ce qu'un Geohash ?
Geohash est un système de géocodage qui transforme une latitude et une longitude en une chaîne alphanumérique courte. Créé par Gustavo Niemeyer en 2008, il découpe le globe en une grille hiérarchique où chaque caractère ajoute de la précision.
Un geohash tel que « w7p9v0rr » représente une zone rectangulaire précise sur Terre. Plus la chaîne est longue, plus la zone est petite, ce qui rend le geohash idéal pour les recherches de proximité et l'indexation spatiale.
Atouts du Geohash :
- Structure hiérarchique : chaque caractère affine la zone précédente
- Propriété de proximité : des geohash proches partagent souvent des préfixes identiques
- Simplicité : comparaisons de chaînes pour des filtres approximatifs
- Compatible base de données : indexable sous forme de chaîne pour des requêtes rapides
- Sûr pour les URL : utilise un alphabet base-32 (0-9, a-z sans a, i, l, o)
Geohash est largement utilisé dans les services basés sur la localisation, les bases NoSQL (MongoDB, Redis) et les applications de cartographie.
Comment fonctionne Geohash
Geohash repose sur un encodage base-32 qui divise progressivement la Terre en cellules rectangulaires. Chaque caractère correspond à un niveau de subdivision :
Niveaux de précision et tailles de cellules :
- 1 caractère : ~5 000 km × 5 000 km (niveau continental)
- 3 caractères : ~156 km × 156 km (niveau régional/ville)
- 5 caractères : ~5 km × 5 km (quartier)
- 7 caractères : ~150 m × 150 m (rue)
- 9 caractères : ~5 m × 5 m (bâtiment)
- 12 caractères : ~4 cm × 2 cm (précision submétrique)
Processus d'encodage :
L'algorithme alterne longitude et latitude, divisant l'espace par moitié à chaque bit. Toutes les 5 bits produisent un caractère base-32 qui bâtit la chaîne de gauche à droite.
Recherche de voisins :
Geohash permet de retrouver facilement les cellules adjacentes, pratique pour les requêtes « trouver à proximité », tout en gérant les cas limites près des frontières.
Cas d'usage
Geohash s'impose dans de nombreux scénarios :
- Recherche de proximité : filtrer les points partageant un préfixe commun
- Indexation spatiale : organiser les données par geohash dans une base
- Regroupement : trier les points par précision tronquée
- Mise en cache : utiliser le geohash comme clé pour des données géographiques
- Partage d'URL : communiquer des positions approximatives dans un lien court
- Sharding : répartir les données géographiques par préfixe geohash
Geohash vs autres systèmes
Comparaison rapide :
- Geohash vs lat/lon : plus compact et filtrable par préfixe, mais moins lisible
- Geohash vs QuadKeys : principe proche mais encodage base-32 contre base-4
- Geohash vs Plus Codes : Geohash offre une précision variable, Plus Codes un format fixe
- Geohash vs H3 : H3 utilise des hexagones (meilleure forme), Geohash des rectangles (plus simple)
Choisissez Geohash pour indexer vos données et faire des recherches par préfixe. Optez pour Plus Codes ou H3 si vous avez besoin d'un format très lisible ou de cellules aux propriétés spatiales optimisées.
Gérer les voisins
Chaque geohash possède 8 voisins (N, NE, E, SE, S, SW, W, NW), utile pour étendre une zone de recherche :
- Recherche simple : interroger le geohash cible et ses 8 voisins
- Bords de cellule : contrôler les voisins lorsqu'un point est proche de la limite
- Recherche par rayon : combiner plusieurs niveaux de précision et leurs voisins
- Suivi temps réel : surveiller le passage d'objets d'une cellule à l'autre
Les voisins ne couvrent pas tous les cas extrêmes (surtout près de ±180° de longitude), il reste donc conseillé de calculer les distances réelles pour une proximité très précise.