ForHosting KIT · Strumenti per sviluppatori

Decodificatore Morton: converta un indice Z-order in x e y

Inserisca un codice Morton e recuperi le due coordinate che contiene: 39 diventa x 3 e y 5. I bit pari vanno a x e quelli dispari a y, senza arrotondamenti, su tutto l'intervallo a 64 bit. Gratis nel suo browser.

  • Gratis
  • Funziona nel suo browser
  • Senza registrazione
  • I suoi dati restano sul dispositivo
Usalo da WebAPIEmailTelegramApp presto
Se inserisce
Codice
39
Ottiene
X
3
Y
5

Il decodificatore Morton inverte una mappatura Z-order bidimensionale. Inserendo un indice decimale senza segno, separa i bit alternati e recupera le coordinate x e y originali. Supporta l’intero intervallo Morton a 64 bit, quindi ogni coordinata può utilizzare tutti i 32 bit senza segno. L’operazione è esatta e deterministica, ideale per esaminare indici spaziali, correggere codificatori, leggere identificatori compatti di tile e verificare codice per database o grafica senza predisporre uno script dedicato.

Come la decodifica Morton recupera due coordinate

Un codice Morton bidimensionale racchiude in un solo intero due flussi di bit delle coordinate. Partendo dall’estremità meno significativa, la posizione zero appartiene a x, la posizione uno a y, la posizione due torna a x e l’alternanza prosegue. La decodifica non approssima, divide o deduce una posizione: trasferisce ogni bit di posizione pari nella posizione corrispondente di x e ogni bit dispari in y.

Per esempio, il bit Morton sei diventa il bit tre di x, mentre il bit sette diventa il bit tre di y. La regola viene applicata a tutti i 64 bit disponibili e genera due coordinate senza segno a 32 bit. Anche il codice restituito viene normalizzato come stringa decimale, eliminando ambiguità dovute agli zeri iniziali e conservando il valore esatto.

Questa è la disposizione bidimensionale comune, con x nelle posizioni pari. Se il sistema sorgente intercala prima y, scambi le due coordinate restituite oppure adegui la convenzione del codificatore prima del confronto.

Come inserire codici grandi senza perdere precisione

Invii l’indice Morton nel campo code come stringa intera decimale senza segno, per esempio "39" o "18446744073709551615". Il decodificatore usa aritmetica intera esatta e non trasforma mai il codice combinato in virgola mobile. Segni, decimali, notazione esponenziale, spazi, virgole, prefissi esadecimali e valori oltre 2^64 meno uno vengono rifiutati, senza arrotondamenti silenziosi.

Il codice zero produce x zero e y zero; il massimo codice a 64 bit produce il massimo su entrambi gli assi.

Come usare il risultato per collaudare sistemi spaziali

L’ordinamento Morton ricorre in database spaziali, quadtree, archivi di tile, disposizioni di voxel e texture, array efficienti per la cache e pipeline grafiche. Durante il debug, decodifichi un indice sospetto e confronti il punto restituito con la coppia fornita al codificatore. Un ciclo corretto deve riprodurre esattamente entrambe le coordinate con la stessa convenzione x-prima.

Sono preziosi i test sui limiti: provi zero, valori con un solo bit Morton attivo, potenze di due e il massimo codice supportato. I casi a bit singolo evidenziano subito assi scambiati o spostamenti errati. Il decoder restituisce coordinate, non longitudine e latitudine: Morton definisce una disposizione di bit, non proiezione, scala, rappresentazione con segno o sistema di riferimento.

Se l’applicazione sposta coordinate con segno, quantizza posizioni decimali o proietta luoghi prima della codifica, annulli poi quei passaggi specifici.

Correggere un indice spaziale

Riconverta una chiave Z-order inattesa in x e y per individuare errori nel codificatore, nell’ordine degli assi o nello spostamento dei bit.

Esaminare identificatori di quadtree e tile

Recuperi la posizione intera sulla griglia da una chiave Morton compatta prima di applicare scala o proiezione.

Verificare i cicli di codifica

Aggiunga controlli deterministici ai test di database, simulazioni, giochi, grafica o strutture ottimizzate per la cache.

Quali bit appartengono a ogni coordinata?

Le posizioni Morton 0, 2, 4 e le altre pari formano x; le posizioni 1, 3, 5 e le altre dispari formano y.

Qual è il massimo codice Morton supportato?

Il massimo è 18446744073709551615, cioè 2^64 meno uno.

Il risultato viene convertito in latitudine e longitudine?

No. Recupera solo coordinate intere senza segno. Proiezione, scala, offset e regole del segno dipendono dal sistema di origine.

Che cosa faccio se il mio sistema intercala prima la coordinata y?

Scambi tra loro le due coordinate ottenute. Qui x occupa le posizioni pari dei bit, la convenzione più diffusa; se il suo codificatore parte da y, i due valori risultano invertiti.

Come verifico che il mio codificatore Morton sia corretto?

Decodifichi un indice sospetto e confronti il punto ottenuto con le coordinate entrate nel codificatore. Provi anche lo zero, il codice massimo e valori con un solo bit acceso, perché rivelano subito assi scambiati o spostamenti di una posizione.

Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.

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

Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.

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"
  }
}

L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.

per richiesta$0.002

Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.

HTTPCodiceSignificato
401unauthorizedChiave API mancante o non valida: controlla l'header Authorization.
402insufficient_balanceCredito esaurito: ricarica per continuare a eseguire attività.
404unknown_typeTipo di attività sconosciuto: controlla il campo type della richiesta.
429rate_limitedTroppe richieste in poco tempo: rallenta e riprova tra qualche secondo.

Come inserire codici grandi senza perdere precisione

La stringa è necessaria per i valori grandi perché i normali numeri JSON e JavaScript non rappresentano esattamente ogni intero dell’intervallo completo a 64 bit. L’implementazione accetta per sicurezza piccoli interi esatti, ma il contratto pubblico usa una stringa affinché la richiesta rimanga precisa in ogni SDK e trasporto. x e y non superano mai 4,294,967,295, valore esatto nei numeri JSON, e vengono quindi restituiti come comodi campi numerici.

Come usare il risultato per collaudare sistemi spaziali

L’API esegue un passaggio limitato, senza rete, casualità, stato salvato o operazioni dipendenti dalla piattaforma.

Perché il codice va inviato come stringa?

Le stringhe decimali preservano esattamente ogni intero a 64 bit in JSON e JavaScript; i grandi numeri JSON possono essere arrotondati.

Quanto costa una richiesta API?

Ogni richiesta API costa $0.002. L’algoritmo non impiega servizi di rete né modelli probabilistici.

Leggi la documentazione completa del KIT →