Geohash-Kinderzellen
Der Geohash u4pruyd zerfällt in 32 Kinder, von u4pruyd0 bis u4pruydz, jedes ein Zeichen länger und zusammen die ganze Elternzelle abdeckend. Fügen Sie einen Geohash ein und erhalten Sie alle Kinder in derselben festen Reihenfolge, bereit für Indizes oder Karten. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Geohash
- u4pruyd
- Genauigkeit
- 7
- Genauigkeit des Kindes
- 8
- Anzahl
- 32
Das Werkzeug für Geohash-Kinderzellen nimmt einen vorhandenen Geohash entgegen und unterteilt dessen rechteckige Fläche in die 32 Zellen der nächsten Genauigkeitsstufe. Es hängt jedes Zeichen des kanonischen Geohash-Base32-Alphabets in stabiler Reihenfolge an und liefert damit ein Ergebnis für Indizierung, Kartendarstellung, Tests oder rekursive Durchläufe. Die Eingabe wird in Kleinbuchstaben normalisiert; ungültige Zeichen und nicht unterstützte Längen führen zu einer verständlichen Fehlermeldung. Die Berechnung ist deterministisch und kommt ohne Netzwerk, Zufallswerte oder Zeitabhängigkeit aus.
So funktioniert die Geohash-Unterteilung
Ein Geohash stellt eine rechteckige geografische Zelle durch eine verschachtelte Folge von Längen- und Breitengradbits dar. Jedes Zeichen ergänzt fünf Bits. Durch das Anhängen eines Zeichens wird die Elternzelle deshalb in 32 kleinere Rechtecke aufgeteilt.
Diese Rechtecke sind genau ihre direkten Kinder; zum Benennen sind weder das Decodieren von Koordinaten noch Rundungen oder eine räumliche Suche erforderlich. Diese Funktion hängt jedes Zeichen des kanonischen Geohash-Alphabets <code>0123456789bcdefghjkmnpqrstuvwxyz</code> an den normalisierten Elternwert an. Lautet dieser <code>u4pruyd</code>, beginnen die Kinder mit <code>u4pruyd0</code> und <code>u4pruyd1</code>; das letzte lautet <code>u4pruydz</code>.
Jede ausgegebene Zeichenfolge behält das Elternpräfix und ist genau ein Zeichen länger. Zusammen decken die 32 Ergebnisse die gesamte Elternzelle auf dieser Genauigkeitsstufe lückenlos und ohne Überlappung ab. Ihre Reihenfolge folgt den Zeichenwerten und keiner geografischen Leserichtung.
Verwenden Sie diese Operation, wenn Sie die vollständige nächste Ebene einer Geohash-Hierarchie benötigen, nicht die benachbarten Zellen neben dem Elternwert bei gleicher Genauigkeit.
Eingabeprüfung und Antwortfelder
Die kurzen Aliase <code>hash</code> und <code>gh</code> werden aus Kompatibilitätsgründen akzeptiert; neue Integrationen sollten jedoch den kanonischen Feldnamen verwenden. Vor der Prüfung werden äußere Leerzeichen entfernt und Großbuchstaben in Kleinbuchstaben umgewandelt. Ein gültiger Wert umfasst ein bis zwölf Zeichen aus dem Geohash-Base32-Alphabet.
Fehlende Werte, andere Datentypen, nach dem Kürzen leere Zeichenfolgen und zu lange Eingaben werden ebenfalls abgelehnt. Es gibt keine optionalen Nullfelder.
Kinderzellen in räumlichen Systemen einsetzen
Die Erzeugung von Kinderzellen eignet sich für räumliche Anwendungen, die Orte als Präfixbaum speichern oder durchsuchen. Ein Kartendienst kann mit einer großen Zelle beginnen, deren Kinder abrufen und nur solche Zweige weiter unterteilen, die genügend Daten enthalten. Ein Wartungsprozess kann einen groben Datenbehälter in feinere Schlüssel aufteilen, bevor Datensätze neu verteilt werden.
Tests können anhand der geordneten Ausgabe prüfen, ob ein Encoder, Präfixindex oder rekursiver Durchlauf jedes zulässige Suffix verarbeitet und verbotene Base32-Zeichen ausschließt. Diese Operation benennt Zellen lediglich: Sie berechnet keine Grenzen für Längen- und Breitengrad, ermittelt keine enthaltenen Daten und gibt nicht die acht angrenzenden Nachbarn zurück. Verwenden Sie einen Geohash-Decoder für Koordinaten oder Begrenzungsrahmen und eine Nachbarsuche für angrenzende Zellen gleicher Genauigkeit.
Für eine rekursive Unterteilung übergeben Sie ein ausgegebenes Kind erneut, bis die gewünschte Genauigkeit erreicht ist, und beachten bei jedem Aufruf die Eingabegrenze. Weil jede Ebene die Blattzahl mit 32 multipliziert, sollten Sie die Rekursion in Ihrer Anwendung begrenzen und unnötig große Bäume vermeiden.
Anwendungsfälle
Einen Geohash-Präfixbaum aufbauen
Erweitern Sie ausgewählte räumliche Bereiche stufenweise und halten Sie alle erzeugten Schlüssel in reproduzierbarer kanonischer Reihenfolge.
Aggregationszellen einer Karte verfeinern
Ersetzen Sie eine grobe Region durch sämtliche Zellen der nächsten Genauigkeit, bevor Sie feinere Statistiken berechnen.
Geohash-Bibliotheken testen
Erzeugen Sie alle zulässigen Suffixe für Testdaten zu Präfixdurchläufen, Eingabeprüfung und unveränderlicher Kinderanzahl.
Häufige Fragen
Wie viele Kinderzellen hat ein Geohash?
Genau 32 direkte Kinder, da ein zusätzliches Geohash-Zeichen fünf Bits beiträgt und damit 32 mögliche Werte darstellt.
Werden die Kinder geografisch sortiert?
Nein. Sie folgen der stabilen kanonischen Base32-Zeichenfolge, nicht einem Durchlauf von Nord nach Süd oder West nach Ost.
Ändert die Unterteilung die abgedeckte Fläche?
Die 32 Kinder decken gemeinsam dieselbe Fläche wie ihr Elternwert ab. Jedes Kind umfasst einen Teilbereich der nächsten Genauigkeit.
Welche Zeichen sind zulässig?
Zulässig sind 0–9 und bcdefghjkmnpqrstuvwxyz. Die Buchstaben a, i, l und o gehören nicht zum Geohash-Alphabet.
Wie gehe ich mehr als eine Stufe tiefer?
Geben Sie ein beliebiges Kind erneut ein und unterteilen Sie es wieder, bis die gewünschte Genauigkeit erreicht ist, innerhalb der Grenze von 12 Zeichen. Jede Stufe vervielfacht die Zellen um 32, also erweitern Sie nur die nötigen Zweige.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/geo/geohash-children \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"geohash":"u4pruyd"}'const res = await fetch("https://api.kit.forhosting.com/geo/geohash-children", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"geohash": "u4pruyd"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/geohash-children",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"geohash": "u4pruyd"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/geohash-children", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"geohash":"u4pruyd"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"geohash":"u4pruyd"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/geohash-children", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"geohash": "u4pruyd"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.geohash_children",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_precision | 12 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Eingabeprüfung und Antwortfelder
Senden Sie ein JSON-Objekt mit der erforderlichen Zeichenfolge <code>geohash</code>. Dieses Alphabet lässt a, i, l und o bewusst aus, um optische Verwechslungen zu verringern; jedes dieser Zeichen erzeugt <code>invalid_input</code>. Eine erfolgreiche Antwort enthält <code>geohash</code> als normalisierten Elternwert, <code>precision</code> als dessen Länge, <code>child_precision</code> als um eins erhöhte Länge, <code>children</code> als geordnetes Array der 32 Kinder und <code>count</code> mit dem festen Wert 32. Eine erfolgreiche API-Anfrage kostet $0.002; das Browserwerkzeug führt dieselbe reine Berechnung kostenlos lokal aus.
Technische Fragen
Was kostet eine API-Anfrage?
Jede erfolgreiche API-Anfrage kostet $0.002. Die Browserversion führt dieselbe deterministische Berechnung kostenlos lokal aus.