Geohash
Geohash est un système de géocodage qui subdivise la surface de la Terre en cellules formant une grille et encode chaque cellule sous la forme d’une courte chaîne de lettres et de chiffres. Il s’agit d’une structure de données hiérarchique : plus la chaîne geohash est longue, plus la localisation géographique est précise.
Si vous devez convertir manuellement des coordonnées géographiques en chaînes geohash, vous pouvez utiliser geohash.org
geohashEncode
Encode la latitude et la longitude sous forme de chaîne de geohash.
Syntaxe
geohashEncode(longitude, latitude, [precision])Valeurs d'entrée
longitude— Composante longitude de la coordonnée que vous souhaitez encoder. Nombre à virgule flottante dans l'intervalle[-180°, 180°]. Float.latitude— Composante latitude de la coordonnée que vous souhaitez encoder. Nombre à virgule flottante dans l'intervalle[-90°, 90°]. Float.precision(facultatif) — Longueur de la chaîne encodée résultante. La valeur par défaut est12. Entier dans l'intervalle[1, 12]. Int8.
Valeurs renvoyées
- Chaîne alphanumérique correspondant à la coordonnée encodée (une version modifiée de l'alphabet d'encodage base32 est utilisée). String.
Exemple
SELECT geohashEncode(-5.60302734375, 42.593994140625, 0) AS res;┌─res──────────┐
│ ezs42d000000 │
└──────────────┘geohashDecode
Décode toute chaîne encodée en geohash en coordonnées de longitude et de latitude.
Syntaxe
geohashDecode(hash_str)Valeurs d'entrée
hash_str— Chaîne encodée au format geohash.
Valeurs renvoyées
- Tuple
(longitude, latitude)composé de valeursFloat64correspondant à la longitude et à la latitude. Tuple(Float64)
Exemple
SELECT geohashDecode('ezs42') AS res;┌─res─────────────────────────────┐
│ (-5.60302734375,42.60498046875) │
└─────────────────────────────────┘geohashesInBox
Renvoie un tableau de chaînes encodées en geohash, à la précision donnée, qui se trouvent dans le cadre donné et en intersectent les limites, soit essentiellement une grille 2D aplatie sous forme de tableau.
Syntaxe
geohashesInBox(longitude_min, latitude_min, longitude_max, latitude_max, precision)Arguments
longitude_min— Longitude minimale. Plage :[-180°, 180°]. Float.latitude_min— Latitude minimale. Plage :[-90°, 90°]. Float.longitude_max— Longitude maximale. Plage :[-180°, 180°]. Float.latitude_max— Latitude maximale. Plage :[-90°, 90°]. Float.precision— Précision du geohash. Plage :[1, 12]. UInt8.
Valeurs renvoyées
- Tableau de chaînes de geohash de longueur
precisionreprésentant les boîtes couvrant la zone fournie ; ne vous fiez pas à l’ordre des éléments. Array(String). []- Tableau vide si les valeurs minimales de latitude et de longitude ne sont pas inférieures aux valeurs maximales correspondantes.
Exemple
SELECT geohashesInBox(24.48, 40.56, 24.785, 40.81, 4) AS thasos;┌─thasos──────────────────────────────────────┐
│ ['sx1q','sx1r','sx32','sx1w','sx1x','sx38'] │
└─────────────────────────────────────────────┘