IT:Component overview

From OpenStreetMap Wiki
Jump to navigation Jump to search

Questa pagina ha l'intento di fornire agli sviluppatori una panoramica tecnica sul sistema logico e sui componenti di OpenStreetMap.

Diagramma

OSM Components.svg

Database

Il database contiene tutti i dati della mappa nella forma di nodi, relazioni, e percorsi. Vedi lo schema del database. Il software di database utilizzato è PostgreSQL.

Protocollo

Il protocollo di OSM (AKA "the API") è una interfaccia web service REST per la lettura e la scrittura su database.

Altri componenti OSM hanno accesso al database attraverso questa interfaccia. Esso è accessibile anche via internet.

La struttura dell'API fa parte della stessa applicazione Ruby on Rails che alimenta il front-end del sito OSM.

In produzione, un certo numero di endpoint API critici per le prestazioni sono gestiti da un'implementazione separata in C++ (Cgimap).

Interfaccia OSM

Il sito di interfaccia è scritto nel linguaggio Ruby on Rails (vedi The Rails Port). Esso presenta le opzioni di log-in, usando una connessione diretta al database degli utenti (non visibile nel diagramma precedente). La funzione principale del sito web è di visualizzare la Slippy Map (scheda "view"), e, per gli utenti che hanno fatto l'accesso, anche il programma per la modifica online Potlatch (scheda edit)

Slippy Map

Vedi Slippy Map. E' il componente che visualizza la mappa! E' una interfaccia di tipo AJAX che permette lo zoom e la navigazione sulla mappa.

iD

iD è il programma per la modifica online contenuto nella scheda edit. E' un componente scritto in javascript . Può essere incorporato in altri siti web, per consentire un'esperienza di editing personalizzabile da altri siti web. Altri editor sono disponibili nel menu a tendina della scheda edit.

Generazione della mappa

C'è un processo attivo che carica i dati della mappa per mezzo delle API, e che genera graficamente le mappe come una serie di immagini di tipo raster conosciute come 'tiles'. C'è bisogno di generare sempre più di queste nuove immagini per permettere una copertura globale, ma anche l'aggiornamento continuo dei dati obbliga la ri-generazione della mappa esistente.

Mapnik

Mapnik è un sistema di generazione grafica della mappa che potenzia la Slippy Map predefinita. Il processo è in esecuzione sul server delle 'tile', e le immagini di Mapnik sono prelevate dallo stesso server. Questo processo preleva i dati dal salvataggio settimanale Planet.osm.

Tiles@home

Tiles@home è un sistema distribuito per la generazione grafica delle mappe. Usa il sistema Osmarender (XSLTs) e viene eseguito su molte macchine client differenti. Preleva i dati attuali per mezzo del protocollo, e genera graficamente le immagini che sono pubblicate sul server di sviluppo.

Programmi di generazione grafica delle mappe (Renderers)

Come menzionato prima, i programmi utilizzati per la generazione grafica delle mappe sono Mapnik e Osmarender. Questi programmi possono essere anche usati come una base per la creazione di mappe a partire dai nostri dati. Non c'è limite al potenziale nello sviluppo di nuovi metodi di visualizzazione dei nostri dati.

Programmi di modifica (Editors)

Oltre alla scheda edit sul sito principale (iD) ci sono anche altri programmi online e non che permettono la modifica dei dati di OSM per mezzo delle sue API. L'editor desktop più popolare è JOSM. Vedi Editing per un elenco. L'API permette l'autenticazione tramite OAuth il quale permette che l'utente conceda i permessi al software di terze parti, senza consegnargli le credenziali di accesso ad OpenStreetMap.