ST_GEOHASH |
GeoHash |
| BigQuery |
Syntaxe
|
ST_GEOHASH(geography_expression, maxchars)
|
Paramètres
| Nom |
Description |
| geography_expression |
Ce paramètre permet de spécifier l'expression de type GEOGRAPHY (un point) que vous souhaitez convertir en une chaîne GeoHash. Notez que ST_GEOHASH est principalement destinée à être utilisée avec des géométries de type POINT. Si vous lui passez une géométrie plus complexe, elle calculera le GeoHash de son centroïde. |
| maxchars |
Ce paramètre permet de définir la longueur maximale de la chaîne GeoHash résultante (sa précision). Plus la valeur de maxchars est élevée, plus le GeoHash sera précis et représentera une zone géographique plus petite. La valeur doit être un entier positif. |
Description
Cette fonction permet de créer un objet GeoJSON en utilisant une expression spécifié.
Remarques
- Encode un point géographique en chaîne GeoHash : La fonction ST_GEOHASH permet de convertir un objet GEOGRAPHY de type POINT en une chaîne de caractères
GeoHash, représentant une zone géographique. C'est un moyen compact et textuel de coder des coordonnées pour les rendre plus faciles à stocker, indexer ou transmettre.
- La précision dépend du paramètre maxchars : Le deuxième paramètre, maxchars, détermine la longueur du GeoHash généré. Plus cette valeur est grande
(jusqu'à environ 12), plus le GeoHash est précis. Une petite valeur (ex. 3) correspond à une large zone, tandis qu'une valeur élevée (ex. 9 ou 10) permet de localiser
une zone très réduite, parfois de quelques mètres.
- Fonction principalement conçue pour les points : Même si on peut lui passer des géométries plus complexes (comme des polygones), la fonction utilisera
automatiquement leur centroïde pour effectuer le calcul. Elle est donc avant tout adaptée à l'encodage de points uniques, comme des localisations GPS.
- Très utile pour l'indexation spatiale hiérarchique : Le GeoHash offre une représentation hiérarchique et spatiale des données, ce qui permet de
regrouper rapidement des points proches en comparant simplement leurs chaînes. Cela facilite des opérations comme le clustering, la partition spatiale ou les
recherches par voisinage.
- Particulièrement utile dans les bases NoSQL ou distribuées : Les systèmes comme Bigtable,
Cassandra ou Firestore peuvent exploiter des chaînes GeoHash comme clefs d'indexation spatiale, car elles
conservent une certaine proximité géographique dans l'ordre lexicographique des chaînes.
- Complémentaire avec ST_GEOGPOINTFROMGEOHASH : La fonction ST_GEOHASH a une fonction inverse : ST_GEOGPOINTFROMGEOHASH, permettant de récupérer le point
central d'un GeoHash donné. Ensemble, ces fonctions permettent de naviguer entre coordonnées spatiales et encodage compact.
- Favorise la compression et le stockage léger : Plutôt que de stocker deux décimales (longitude et latitude), un GeoHash représente l'information sous
forme d'une seule chaîne compacte, ce qui peut être pratique pour l'export, l'identification unique ou le stockage de millions de points.
- Utile pour l'agrégation spatiale personnalisée : En tronquant les GeoHash à une certaine longueur (exemple : les 5 premiers caractères), on peut
regrouper plusieurs points dans une même zone géographique, puis faire des agrégations par zone, comme compter le nombre de points dans une cellule géographique
spécifique.
Dernière mise à jour : Jeudi, le 18 Juin 2020