alsperGIS DATI
SOFTWARE


Realizzare un modello 3D per web con Qgis2threejs
(versione di Qgis2threejs: 1.3.1)


Il plugin Qgis2threejs per QGIS consente facilmente di realizzare una pagina web con un modello 3D della propria area di interesse. Ovviamente è necessario avere un DEM che copra tutta l'area e con pochi click si può plasmare la mappa nella vista di QGIS su tale DEM e riprodurla su una pagina web in cui il visitatore interagisce con il modello 3D. Però funziona solo su browsers che supportano WebGL (come Firefox, Chrome, Opera; da poco anche Internet Explorer 11 supporta WebGL ma i modelli 3D si muovono molto lentamente).





   1° esempio


>>> esempio di modello 3D ottenuto con
Qgis2threejs: Corona di Garzonè (realizzato per il sito Slowphoot) (7MB)


Partiamo dalla vista di QGIS; dobbiamo avere caricati e visualizzati i layers che formeranno la scena di base da plasmare sul DEM. Nel mio caso ho un ortofoto (raster) a cui sono sovrapposte alcune curve di livello e la traccia di un itinerario escursionistico (vettoriali).
Occorre poi avere caricati (ma non è necessario che siano visualizzati) il DEM ed eventuali layers vettoriali che vogliamo plasmare sul DEM in modo interattivo.

A questo punto andiamo al plugin: Web >
Qgis2threejs > Qgis2threejs

Come prima cosa bisogna scegliere il DEM e la sua risoluzione (area Resampling). L'opzione più semplice (Simple) permette di scegliere tra sei livelli di risoluzione (da circa 100x100 a 600x600). Aumentando la risoluzione il rilievo sarà più dettagliato ma la pagina sarà anche più pesante da caricare (per mio modello 3D sopra indicato ho scelto la risoluzione massima ed il suo peso è quasi 7 MB).

DEM.png


Altri parametri importanti sono alla voce "World" dove si può specificare l'accentuazione verticale del rilievo e nel mio caso l'ho anche abbassato di 1400 m visto che la mia area di interesse è tutta al di sopra di quella quota (altrimenti il mio modello apparirebbe in cima ad un prisma alto appunto 1400 m).

World.png


Se vogliamo mostrare un layer vettoriale in modo interattivo dobbiamo selezionarlo e specificare alcune opzioni. Nel mio caso ho alcuni punti con luoghi di cui voglio mostrare il nome. I parametri visibili nella figura sottostante sono abbastanza intuitivi. Faccio solo notare che per etichettare gli elementi bisogna spuntare "Export attributes", indicare il campo con le etichette e scegliere la modalità con cui disposta l'etichetta; per quest'ultima ci sono tre opzioni: 1) "Height from point": ad una certa altezza sopra il rispettivo elemento; 2) "Fixed value" ad una quota uguale per tutte le etichette; 3) si può scegliere un campo del file vettoriale che specifica la quota. Io ho scelto il secondo modo; avendo la quota massima del DEM pari a 2450 m ho voluto mettere le etichette a 2500 m, ma avendo abbassato il rilievo di 1400 m alla voce "World" anche qui devo mettere un valore di 2500-1400=1100.
(PS: l'etichettatura funziona solo per i layers di punti).

punti.png

Risultato:

02.jpg





   2° esempio


>>> esempio di modello 3D ottenuto con Qgis2threejs: Meriggio-Campaggio (realizzato per il sito Slowphoot) (10MB)


In questo esempio l'immagine plasmata sul DEM ha una risoluzione maggiore (con conseguente aumento del peso del modello 3D) e la tabella informativa degli elementi vettoriali contiene un campo che è praticamente un frame html con una foto ed un link.

Tra le opzioni relative al DEM, nel riquadro "Display type" selezioniamo "Layer image" e scegliamo il layer che vogliamo come immagine di sfondo (nel mio caso ho scelto un'ortofoto salvata su hard-disk) quindi impostiamo una risoluzione maggiore: 200% o 400% (nell'esempio precedente l'ortofoto era visualizzata via WMS e l'opzione per una risoluzione maggiore non era efficace).

04.png

I parametri per i punti sono molto simili all'esempio precedente anche se questa volta ho scelto di avere le etichette ad una certa altezza rispetto al DEM.
Ora però seleziono anche le linee (itinerari) e spunto "Export attributes" in modo che cliccando su un elemento si apra la tabella con i suoi attributi. Da notare che in "Z coordinates" ho aggiunto una sopraelevazione di 3 m per rendere meglio visibile le linee che altrimenti, per molti tratti, andrebbero al di sotto del DEM scomparendo.
(Nell'esempio precedente le linee degli itinerari facevano parte dell'immagine base; in tal modo non erano interattive ma si poteva dar loro una simbologia più complessa).

05.png

La cosa più interessante di questo esempio non è nelle opzioni di Qgis2threejs ma negli attributi dei layers vettoriali. Infatti è presente un campo contenente una riga in html che crea un iframe di dimensioni fisse nel quale verrà visualizzata una pagina web esterna (simile a quanto fatto nella realizzazione di mappe con qgis2leaf).

06.png

Nel modello 3d, cliccando su un elemento si apre una finestra informativa con gli attributi di quell'elemento ed in corrispondenza del campo html_exp viene visualizzata la pagina collegata (nel mio caso una pagina molto semplice con una foto ed un link).

07.jpg




>>> Altri esempi




   Nota: schede grafiche e supporto WebGL

Per verificare se il proprio browser supporta WebGL è sufficiente visitare la pagina http://get.webgl.org/.
Tuttavia non è solo una questione di browser ma anche di hardware.  Io uso un portatile con due schede grafiche: una ad alte prestazione ed una a risparmio energetico. Con la prima i modelli generati da qgis2threejs funzionano su Firefox, Chrome e Internet explorer. Con la seconda funzionano solo su Chrome e Internet Explorer, non su Firefox.
Cercando in internet ho trovato che Firefox ha una blacklist di schede grafiche che possono causare problemi (https://wiki.mozilla.org/Blocklisting/Blocked_Graphics_Drivers); in questi casi WebGL viene automaticamente bloccato. Si può comunque forzare l'abilitazione digitando about:config nella barra degli indirizzi come fosse un URL e settando webgl.force-enabled=true ma è un'operazione sconsigliata.





 
Argomenti correlati

>>> QGIS

>>> DEM













Luglio 2015
Alessandro Perego