Encodeur geohash
Transformez une paire de coordonnées en geohash court : 37,7749 et -122,4194 sur neuf caractères donnent 9q8yyk8yt, une clé de la taille d'un pâté de maisons qui regroupe les lieux proches. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Latitude en degrés décimaux
- 37,7749
- Longitude en degrés décimaux
- -122,4194
- Précision
- 9
- Geohash
- 9q8yyk8yt
Un geohash transforme un couple de coordonnées géographiques en une courte chaîne base32 qui identifie une cellule rectangulaire à la surface de la Terre. Les points voisins partagent de longs préfixes communs, ce qui rend l'encodage utile pour la recherche de proximité, les clés de tuiles, le partitionnement de cache et les jetons de localisation lisibles. L'algorithme est purement arithmétique : aucun appel réseau, aucun échantillonnage aléatoire et aucune horloge. Une précision invalide ou des coordonnées hors plage sont rejetées par une erreur d'entrée claire plutôt que par une cellule erronée silencieuse.
Ce que représente réellement un geohash
Chaque caractère ajouté divise environ la cellule par deux dans une dimension puis dans l'autre, de sorte que les chaînes plus longues décrivent des rectangles plus petits. Un hash d'un seul caractère couvre une immense portion de la planète ; neuf ou dix caractères suffisent généralement pour un pâté de maisons ou l'emprise d'un bâtiment, selon la latitude. Comme les préfixes s'emboîtent, deux emplacements qui partagent les sept premiers caractères tombent dans la même cellule grossière, ce qui rend précisément praticables les requêtes par préfixe et le regroupement cartographique.
La chaîne n'est pas un hash cryptographique : des points différents peuvent partager un préfixe à dessein, et la même précision produit toujours la même chaîne pour les mêmes coordonnées. Utilisez-le lorsque vous avez besoin d'une clé compacte et compatible avec les URL pour un lieu, plutôt que d'un couple de flottants complet dans chaque ligne de journal ou de base de données.
Comment choisir la précision et transmettre les coordonnées
La précision est le nombre de caractères base32 souhaités en retour, de un à douze. Les valeurs faibles conviennent aux compartiments nationaux ou régionaux ; les valeurs moyennes conviennent aux villes et aux quartiers ; les valeurs élevées conviennent aux cellules à l'échelle d'un intérieur ou du suivi de véhicules. Les champs manquants et les valeurs non numériques échouent de la même façon.
Préférez des nombres décimaux stables plutôt que des chaînes avec des unités ou des lettres cardinales ; convertissez les références DMS ou de grille avant l'appel.
Où s'insèrent les cellules encodées dans les pipelines réels
Les équipes utilisent les geohash comme clés de partition dans les magasins de séries temporelles, comme identifiants de tuiles pour les caches côté client, comme préfixes partagés pour les filtres de points voisins, et comme jetons courts dans les URL ou les charges utiles de QR lorsqu'un couple lat/lon complet est peu commode.
Comme la transformation est déterministe et sans effet de bord, vous pouvez régénérer la même clé dans le navigateur, dans un worker ou dans un traitement par lots et obtenir des résultats identiques au bit près pour les mêmes entrées. Cela compte pour les tests de référence, les répliques multirégionales et les outils hors ligne qui ne doivent pas dériver.
Rappelez-vous que les cellules geohash sont des rectangles dans l'espace des degrés, et non des cercles parfaits d'aire égale : près des pôles, une cellule d'une longueur donnée est bien plus étroite en mètres d'est en ouest que la même longueur près de l'équateur. Pour une recherche stricte par rayon, calculez toujours la distance sur les points d'origine ; utilisez le hash pour le regroupement et la récupération de candidats, puis affinez.
Cas d’usage
Clés de partition de base de données et de cache
Stockez un geohash de longueur fixe à côté de chaque enregistrement pour que les balayages de plage et les partitions de cache regroupent les emplacements voisins sans index à virgule flottante.
Regroupement cartographique et étiquettes de tuiles
Regroupez les épingles par préfixes partagés à une précision de type niveau de zoom choisi, puis développez uniquement les cellules qui nécessitent du détail.
Jetons de localisation courts dans les URL
Remplacez les longues chaînes de requête de coordonnées par un geohash compact qui restitue encore une cellule connue lorsqu'il est décodé ailleurs.
Questions fréquentes
Quelle précision dois-je utiliser ?
Utilisez moins de caractères pour les grandes régions et davantage pour les cellules fines. Les valeurs autour de sept à neuf sont courantes à l'échelle d'un pâté de maisons ; douze est le maximum accepté par cet outil.
Combien cela coûte-t-il ?
L'outil de la page est gratuit dans votre navigateur. Les entrées invalides ne sont pas facturées.
Pourquoi des lieux proches ont-ils le même début de geohash ?
Parce que les cellules s'emboîtent : chaque caractère ajouté divise la cellule précédente en parties plus petites. Deux lieux dont les geohashes partagent les sept premiers caractères se trouvent dans la même grande cellule, ce qui permet les recherches par préfixe et le regroupement sur une carte.
Une cellule de geohash a-t-elle la même taille partout sur Terre ?
Non. Les cellules sont des rectangles en degrés, pas des cercles de même surface : près des pôles, une cellule est bien plus étroite d'est en ouest, en mètres, qu'à l'équateur. Pour une recherche par rayon stricte, mesurez la distance sur les coordonnées d'origine.
Puis-je saisir des coordonnées en degrés, minutes et secondes ?
Pas directement. L'outil attend des degrés décimaux dans le système WGS84, sans lettres cardinales ni unités. Convertissez d'abord les coordonnées en degrés, minutes et secondes ou les références de quadrillage.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/geo/geohash-encode \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"latitude":37.7749,"longitude":-122.4194,"precision":9}'const res = await fetch("https://api.kit.forhosting.com/geo/geohash-encode", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"latitude": 37.7749,
"longitude": -122.4194,
"precision": 9
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/geohash-encode",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"latitude": 37.7749,
"longitude": -122.4194,
"precision": 9
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/geohash-encode", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"latitude":37.7749,"longitude":-122.4194,"precision":9}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"latitude":37.7749,"longitude":-122.4194,"precision":9}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/geohash-encode", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"latitude": 37.7749,
"longitude": -122.4194,
"precision": 9
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.geohash_encode",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Cette capacité prend une latitude, une longitude et une longueur de précision, puis renvoie la chaîne geohash accompagnée de la boîte englobante de la cellule.
Ce que représente réellement un geohash
Le geohash est un schéma d'encodage public qui entrelace les bits de la longitude et de la latitude, puis regroupe ces bits cinq par cinq dans un alphabet de 32 caractères qui écarte délibérément les lettres ambiguës.
Comment choisir la précision et transmettre les coordonnées
Envoyez des degrés décimaux sur le globe WGS84 : la latitude de moins quatre-vingt-dix à quatre-vingt-dix, la longitude de moins cent quatre-vingts à cent quatre-vingts. La réponse renvoie les entrées que vous avez transmises, le geohash obtenu et les bornes de latitude et de longitude de la cellule que cette chaîne désigne. Ces bornes sont les intervalles auxquels l'encodeur a abouti après le dernier bit, ce qui vous permet de vérifier la couverture sans décoder séparément. Si la précision est inférieure à un, ou si l'une des coordonnées sort de sa plage légale, l'appel échoue avec invalid_input et n'est pas facturé.
Où s'insèrent les cellules encodées dans les pipelines réels
Lancez l'outil gratuit du navigateur pour inspecter un lieu unique, ou appelez l'API lorsque vous avez besoin du même encodage au sein d'une automatisation, à $0.002 par requête réussie.
Questions techniques
Que renvoie cet encodeur geohash ?
Il renvoie la chaîne geohash, la latitude et la longitude que vous avez soumises, la longueur de précision et la boîte englobante de la cellule que cette chaîne identifie.
Quand l'encodage échoue-t-il ?
Il échoue avec invalid_input lorsque la précision est inférieure à un (ou supérieure à douze), lorsque la latitude est hors de −90…90, lorsque la longitude est hors de −180…180, ou lorsqu'un nombre requis est manquant ou non fini.
Le résultat est-il identique dans le navigateur et dans l'API ?
Oui. Les deux exécutent le même encodeur pur dans lib.js, si bien que des entrées identiques produisent des chaînes geohash et des boîtes englobantes identiques.