IT:Rendering

From OpenStreetMap Wiki
Jump to navigation Jump to search

Genericamente effettuare il rendering significa prendere dei dati geospaziali grezzi e creare da questi una mappa visualizzabile. Spesso la parola viene applicata più specificatamente alla produzione di una immagine di tipo raster o di più parti di immagini raster (dette tiles), ma può anche indicare la produzione di mappe in formato vettoriale. E' anche possibile fare un rendering tri-dimensionale ("3D rendering") sempre usando dati geospaziali come input. La possibilità di effettuare il rendering di mappe in nuovi e differenti stili, o la possibilità di evidenziare caratteristiche di particolare interesse, è uno degli aspetti più eccitanti quando si ha accesso a dati geografici liberi. Gli sviluppatori legati alla comunità di OpenStreetMap hanno creato una grande varietà di software per il rendering dei dati OSM. Avendo una struttura nota, i dati OpenStreetMap possono anche essere convertiti in altri formati per poter essere quindi utilizzati con altri software di rendering già esistenti.

Cambiare i layers sulla homepage usando l'icona '+'

Il Rendering sui servers di OpenStreetMap

Gli esempi più ovvi di rendering di dati OpenStreetMap sono quelli che possiamo trovare su homepage di openstreetmap.org. Cliccando sul simbolo '+' nella parte in alto a destra abbiamo la possibilità di selezionare diversi layer e di vedere diversi stili di rendering. Possiamo trovare alcuni layers creati usando il software Mapnik (incluso il layer 'Mapnik',quello di default), ed uno (non più attivo) creato con tiles@home, un sistema di rendering distribuito che a sua volta impiega il software Osmarender. Per comprendere meglio l'infrastuttura usata per il rendering e gli stili impiegati nelle tiles, vedere Component overview.

Non ci sono limiti alle dimensioni ed alla flessibilità dei sistemi di rendering. Molti dei software di rendering impiegano alcuni tipi di stylesheets per controllare caratteristiche come colore, spessori delle linee, orientamento dei testi, icone per i punti di interesse, e molti altri elementi di visualizzazione.

Software per il Rendering

Le principali scelte per un rendering 2D su mappe di tipo raster sono:

  • Mapnik - Richiede PostgreSQL e diverse librerie C++. E' progettato per essere veloce ed adatto alla generazione delle tiles su servers di fascia alta. La sua installazione non è particolarmente semplice.
  • Osmarender - Utilizza XSLT per trasformare dati OSM in formato XML in formato vettorial SVG. tiles@home è un progetto che usa Osmarender per creare tiles in alterativa a quelle di Mapnik, but Osmarender può essere una valida alternativa per creare renderings unici. Il formato SVG permette inoltre ulteriori eleborazioni e correzioni successive (vedi si seguito).

Altri renderers, inclusi i renders vettoriali:

  • Maperitive è una applicazione desktop per il rendering di dati su file locali (.osm, .osm.bz2 and GPX), con regole di rendering definite con files di testo. Genera mappe in formato BMP, PNG e SVG. Non è progettato per rendering di alte prestazioni ne per processare grandi volumi di dati, ma è facile da installare, è flessibile ed è valido per rendering personalizzati (e.g. la mappa della tua città). E' anche un generatore di tiles, curve di isolivello, elevazioni colorate e con molte altre caratteristiche. Funziona su Windows, Linux, Mac. E' scritto in [C#].
  • CartoType è un sistema di rendering multi-OS, con un a libreria di routing con licenza d'uso.Funziona su sistemi Windows desktop e mobile e su sistema operativo Symbian. E' scritto in C++.
  • Mapsforge - set di strumenti free e open che permette alla comunità di creare facilmente nuove applicazioni basate su OpenStreetMap. Gli strumenti e le API offrono soluzione per rendering, calcolo delle rotte e navigazione, indicizzazione e ricerca di POI, overlay per le mappe e altro. Scritto in java, la piattaforma di destinazione sembra essere quelle dei dispositivi Android.
  • Mapweaver - Successore di mapgen.pl è un sistema di rendering in Perl per convertire dati OSM in SVG e con Inkscape in PNG or PDF. Supporta elenchi di strade e POI, e overlay di griglie e coordinate. Permette l'estrazione automatica di place desiderati da file OSM. Non funziona su Windows.
  • Mapgen.pl - sistema di rendering in Perl per convertire dati OSM in SVG e con Inkscape in PNG or PDF. Supporta elenchi di strade e POI, e overlay di griglie e coordinate. Permette l'estrazione automatica di place desiderati da file OSM. Non funziona su Windows.
  • osmrender.pl - Programma in Perl per generare semplici mappe. Usa dati *.osm come input.
  • Pyrender - Una collezione di idee a del codice in Phyton per vari passi di rendering su server.
  • Cartagen - Renderer basato su HTML5 Canvas/JavaScript.
  • Kogutowicz - Un motore di rendering estensibile, multi-purpose basato su Java. Il progetto è in fase di sviluppo. Attualmente non è usabile da utenti finali.
  • Cobra - Abbandonato. Motore di rendering basato su .Net/mono con uscita in SVG o con mappe raster.
  • Ceyx - Parser .osm e renderer MapCSS in fase di sviluppo attiva. MapCSS è un linguaggio per stylesheet usato da Halcyon per descrivere la presentazione di una mappa. Se avete già lavorato con HTML vi ambienterete velocemente. Ceyx ha bisogno di python, python-cairo e pygtk (per pango/pangocairo).
  • Maposmatic - può eseguire i render di mappe con griglie e indici delle strade. Scritto in Python/Django + mapnik :)
  • osmbrowser - Può caricare ampie zone di dati OSM ed eseguire il rendering in grafica vettoriale.
  • MapDiff genera animazioni, è scritto in linguaggio D.
  • Memphis (Renderer) [1] è un applicazione per il rendering di mappe e una libreria per OpenStreetmap. E' scritto in C impiegando eXpat, Cairo e GLib. E' licenziato con i termini della GNU Lesser General Public License.
  • Hardware_accelerated_real-time_rendering - Usa schede grafiche per il rendering in tempo reale, invece che mostrare tiles create in precedenza.
  • Kothic Un motore di rendering basato su MapCSS/0.2 e Python.
    • Kothic_JS Un motore di rendering completo in JavaScript e utilizzante HTML5 Canvas. Inizialmente era stato sviluppato come porting in JavaScript di Kothic.

3D Rendering

  • OpenStreetMap 3D - OSM in 3D tramite web service
  • OSM2World - Tool Java per la creazione di modelli 3D da dati OSM.
  • ShugenDoMap - Programma di rendering 3D in tempo reale e multi-piattaforma. Progettato in particolare per piattaforme mobili come smartphones e tablets.
  • Kendzi3d - Plugin per JOSM - Consente la visualizzazione dei dati modificati in 3D

Vedere anche