ForHosting KIT · Strumenti per sviluppatori

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

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.

● BetaGratis · nel tuo browser
Usalo da WebAPIEmailTelegramApp presto

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". 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. 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. 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. 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. L’API esegue un passaggio limitato, senza rete, casualità, stato salvato o operazioni dipendenti dalla piattaforma.

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. Produce x = 4294967295 e y = 4294967295.

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.

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.

Quanto costa una richiesta API?

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

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.

Leggi la documentazione completa del KIT →