ForHosting KIT · Entwickler-Tools

Morton-Code-Dekodierer: Z-Index in x und y umwandeln

Der Morton-Code-Dekodierer kehrt eine zweidimensionale Z-order-Abbildung um. Geben Sie einen vorzeichenlosen Dezimalindex ein; die abwechselnden Bits werden getrennt und die ursprünglichen x- und y-Koordinaten wiederhergestellt.

● BetaKostenlos · im Browser
Nutzen Sie es über WebAPIE-MailTelegramApp bald

Der gesamte 64-Bit-Morton-Bereich wird unterstützt, sodass jede Koordinate alle 32 vorzeichenlosen Bits nutzen kann. Die exakte, deterministische Operation eignet sich zum Prüfen räumlicher Indizes, zur Fehlersuche in Encodern, zum Lesen kompakter Kachelkennungen und zum Testen von Datenbank- oder Grafikcode ohne eigenes Bit-Skript.

So gewinnt die Morton-Dekodierung zwei Koordinaten zurück

Ein zweidimensionaler Morton-Code speichert zwei Koordinaten-Bitströme in einer Ganzzahl. Vom niederwertigsten Ende aus gehört Position null zu x, Position eins zu y, Position zwei wieder zu x; dieses Muster setzt sich fort. Die Dekodierung schätzt, dividiert oder errät keinen Ort. Jedes Bit an gerader Position wird an die entsprechende Stelle von x übertragen, jedes Bit an ungerader Position an y. Das Bit an Morton-Position sechs wird beispielsweise Bit drei von x, Position sieben wird Bit drei von y. Diese Regel wird auf alle 64 verfügbaren Bits angewandt und liefert zwei vorzeichenlose 32-Bit-Koordinaten. Der zurückgegebene Code wird außerdem als Dezimalzeichenfolge normalisiert. Dadurch sind führende Nullen eindeutig und der ursprüngliche Zahlenwert bleibt exakt erhalten. Dies ist die übliche zweidimensionale Anordnung mit x an den geraden Positionen. Falls Ihr Quellsystem zuerst y verschachtelt, vertauschen Sie die Ergebnisse oder passen Sie vor dem Vergleich die Encoder-Konvention an.

Große Codes ohne Genauigkeitsverlust eingeben

Übermitteln Sie den Morton-Index im Feld code als vorzeichenlose dezimale Ganzzahlzeichenfolge, etwa "39" oder "18446744073709551615". Für große Werte ist eine Zeichenfolge wichtig, weil normale JSON- und JavaScript-Zahlen nicht jede Ganzzahl im vollständigen vorzeichenlosen 64-Bit-Bereich exakt darstellen. Der Dekodierer verarbeitet den Text mit exakter Ganzzahlarithmetik und wandelt den kombinierten Morton-Code nie in eine Gleitkommazahl um. Vorzeichen, Dezimalstellen, Exponentialschreibweise, Leerzeichen, Kommas, Hexadezimalpräfixe und Werte über 2^64 minus eins werden zurückgewiesen statt unbemerkt gerundet. Kleine sichere Ganzzahlen nimmt die Implementierung vorsorglich an; der veröffentlichte Vertrag verwendet jedoch eine Zeichenfolge, damit die Anfrage in jedem SDK und Transport exakt bleibt. x und y überschreiten nie 4,294,967,295, liegen also im exakten JSON-Zahlenbereich und werden bequem numerisch ausgegeben. Code null ergibt x null und y null; der höchste 64-Bit-Code ergibt auf beiden Achsen den Höchstwert.

Das Ergebnis zum Testen räumlicher Systeme einsetzen

Morton-Sortierung findet sich in räumlichen Datenbanken, Quadtrees, Kachelspeichern, Voxel- und Texturanordnungen, cachefreundlichen Arrays und Grafikpipelines. Dekodieren Sie bei der Fehlersuche einen verdächtigen Index und vergleichen Sie den Punkt mit dem Koordinatenpaar, das der Encoder erhielt. Ein korrekter Rundlauf muss beide Koordinaten unter derselben x-zuerst-Konvention exakt reproduzieren. Besonders nützlich sind Grenztests mit null, einem einzelnen gesetzten Morton-Bit, Zweierpotenzen und dem größten unterstützten Code. Ein-Bit-Fälle decken vertauschte Achsen und Verschiebefehler sofort auf. Der Dekodierer liefert bewusst Koordinaten statt geografischer Länge und Breite: Morton definiert eine Bitanordnung, aber keine Projektion, Skalierung, Vorzeichendarstellung oder ein Bezugssystem. Falls Ihre Anwendung vorzeichenbehaftete Koordinaten versetzt, Gleitkommapositionen quantisiert oder Orte vor dem Kodieren projiziert, kehren Sie diese anwendungsspezifischen Schritte danach um. Die API arbeitet begrenzt und ohne Netzwerk, Zufall, gespeicherten Zustand oder plattformabhängige Ganzzahloperationen.

Einen räumlichen Index untersuchen

Wandeln Sie einen unerwarteten Z-order-Schlüssel in x und y zurück, um Encoder-, Achsen- oder Bitversatzfehler zu finden.

Quadtree- und Kachelkennungen prüfen

Ermitteln Sie aus einem kompakten Morton-Schlüssel die ganzzahlige Rasterposition, bevor Sie Skalierung oder Projektion anwenden.

Kodierungsrundläufe verifizieren

Ergänzen Sie deterministische Dekodierprüfungen für Datenbanken, Simulationen, Spiele, Grafik oder cachefreundliche Datenlayouts.

Welche Bits gehören zu welcher Koordinate?

Die Morton-Positionen 0, 2, 4 und alle weiteren geraden ergeben x; 1, 3, 5 und alle weiteren ungeraden ergeben y.

Welcher Morton-Code ist maximal zulässig?

Das Maximum ist 18446744073709551615, also 2^64 minus eins. Es ergibt x = 4294967295 und y = 4294967295.

Warum muss der Code als Zeichenfolge gesendet werden?

Dezimalzeichenfolgen bewahren jede 64-Bit-Ganzzahl in JSON und JavaScript exakt; große JSON-Zahlen können gerundet werden.

Wird das Ergebnis in Breiten- und Längengrad umgerechnet?

Nein. Es werden nur vorzeichenlose Ganzzahlkoordinaten gewonnen. Projektion, Skalierung, Versatz und Vorzeichenregeln bestimmt das Quellsystem.

Was kostet ein API-Aufruf?

Jeder API-Aufruf kostet $0.002. Der Algorithmus nutzt weder Netzwerkdienste noch probabilistische Modelle.

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.

POSThttps://api.kit.forhosting.com/dev/morton-decode

Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.

curl -X POST https://api.kit.forhosting.com/dev/morton-decode \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"code":"39"}'
{
  "code": "39"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.morton_decode",
  "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.

pro Anfrage$0.002

Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.

HTTPCodeBedeutung
401unauthorizedDer API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer).
402insufficient_balanceIhr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht.
404unknown_typeUnbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog.
429rate_limitedZu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt.

Vollständige KIT-Dokumentation lesen →