IT:WhereAmI/OSM Binary Format
Formato binario OSM
Questa è una alternativa al formato XML comunemente utilizzato per la distribuzione dei dati cartografici OSM. Ci sono anche delle aggiunte per l'utilizzo in dispositivi mobili OSM_Mobile_Binary_Protocol.
Esso non si riferisce al formato OSMbin.
Il formato
La struttura di base di questo formato è costituita da una serie di blocchi binari che specificano la loro dimensione seguita da un tipo, seguito a sua volta dai dati codificati.
- Dimensione - intero senza segno a 32bit indicante la lunghezza (questo valore non include i 4 byte utilizzati per specificare la stessa lunghezza)
- Tipo - intero senza segno a 8bit indicante il tipo (come definito alla pagina dei tipi)
- Dati - dati binari in qualsiasi formato
Per risparmiare spazio, i valori di longitudine e latitudine sono codificati come interi con segno a 32bit a partire dai valori decimali fino alla sesta cifra decimale (es. latitudine/longitudine * 1000000). Questo permette una precisione di ~11cm che soddisfa la maggior parte dei progetti cartografici. I campi Ora/Data sono specificati come il numero di secondi trascorsi dalla Unix Epoch (1 Gennaio 1970 00:00:00 GMT). Le stringhe sono troncate a 255 caratteri e sono specificate come una lunghezza seguita dai caratteri codificati in UTF8.
I nodi OSM non sono trasmessi nella loro totalità, bensì sono inclusi solamente i nodi significativi (nodi con meta dati aggiuntivi - punti di interesse).
I percorsi riducono i dati necessari ad essere trasmessi inviando solamente le posizioni dei nodi mediante coppie longitudine/latitudine, la prima coppia longitudine/latitudine utilizza 32bit e le seguenti sono i valori a 16bit dello scostamento rispetto alla posizione del nodo precedente, se lo scostamento è troppo grande allora vengono inseriti dei nodi immaginari per riempire la mancanza.
Testata
[dimensione del blocco=0x02 0x00 0x00 0x00] 0x05 0x3B
C'è una testata opzionale di 6 byte all'inizio di un file in formato binario OSM. (motivo della decisione: 0=O, 5=S, 3=M, B=B)
Questo indica semplicemente ai programmi di riconoscimento dei file che il contenuto è obf.
Punti di interesse (POI)
- Dimensione (32bit)
- Tipo - 'i' (8bit)
- Identificativo del nodo (64bit)
- Longitudine (32bit)
- Latitudine (32bit)
- Proprietà primaria (8bit) vedi Proprietà del nodo
- Etichette della caratteristica (opzionale) vedere Etichette della caratteristica
Percorsi
- Dimensione (32bit)
- Tipo - 'w' (8bit)
- Identificativo del percorso (32bit)
- Numero di nodi (32bit)
- Longitudine (32bit)
- Latitudine (32bit)
- Seguito da:
- Scostamento della longitudine (16bit)
- Scostamento della latitudine (16bit)
- Etichette della caratteristica vedere Etichette della caratteristica
Relazioni
- Dimensione (32bit)
- Tipo - 'r' (8bit)
- Identificativo della relazione (32bit)
- Tipo della relazione (8bit) vedere Tipi di relazione
- Numero dei membri (32bit)
- Seguito da:
- Tipo/ruolo del membro (8bit) vedere Ruoli delle relazioni
- Identificativo del membro (identificativo a 32bit del percorso oppure identificativo a 64bit del punto di interesse) (ripetuto se necessario)
- Etichette della caratteristica vedere Etichette della caratteristica
Utilizzo
Il formato binario OSM è stato progettato per i tipi di programma seguenti:
- programmi di mappatura
Non è stato progettato per:
E' ottimizzato per:
- utilizzo generico
Questo formato è supportato dai seguenti programmi: