web mapping per principianti

Web mapping per negati: l’esperienza di un principiante

E’ sempre difficile per chi si avventura in un nuovo settore, capire qual’è il modo migliore per iniziare e questo vale naturalmente anche per il web mapping. Quali sono i software e i sistemi migliori per cominciare? …. Cosa conviene studiare all’inizio? …. Da dove bisogna partire? …. Dove posso trovare un adeguato supporto?
Oggi ancora di più di ieri, con l’abbondanza di alternative che ci sono, orientarsi non è semplice e il rischio di confondersi e restare bloccati è alto.

Per imparare a realizzare mappe web, o se volete, a progettare un webGIS, non esiste una ricetta unica che valga per tutti; ognuno ha le sue preferenze, le proprie attitudini e parte da delle conoscenze pregresse diverse. Però confrontarsi con chi già ha fatto questa strada e farsi raccontare la sua esperienza, credo che possa essere utile. E’ per questo che ho deciso di riportarvi qui una breve storia, che non ho scritto io ma è la traduzione libera (cercando di rispettare più possibile il testo originale) di un articolo di qualche anno fa (luglio 2014) ma comunque ancora interessante e anche piacevole da leggere.

L’articolo l’ha scritto Nicholas Duggan che oggi è un affermato esperto di GIS e qui trovate l’originale in inglese: Web mapping for dummies-my personal experience.

Più che per le informazioni tecniche che ci troverete (alcune tra l’altro ormai vecchie) l’ho trovato utile per il tipo di approccio per avvicinarsi al web mapping che l’autore ci racconta, senza nascondere tutte le difficoltà tipiche di un principiante. In particolare Nicholas ci parla dei due software map-server open-source più famosi: MapServer e GeoServer, mettendoli a confronto ma senza scendere nei dettagli (se vi interessa un loro confronto più approfondito, potete leggere questo mio articolo).

Ma a parte questo, l’insegnamento principale che viene fuori da questo articolo è che: bisogna partire gradualmente e fare tanta pratica, non scoraggiarsi se all’inizio sembra tutto oscuro e difficile (…e successo a tutti!), avere la costanza di insistere e col tempo e la passione (… questa ci vuole proprio) i risultati verranno fuori.

Beh che dirvi, a me e piaciuto e quindi l’ho tradotto per renderlo di lettura immediata per tanti altri che si considerano principianti in materia. Se vi fa piacere leggetelo e poi giudicherete voi se ne è valsa la pena.

lineseparator

Web Mapping for Dummies – my personal experience

(di Nicholas Duggan – luglio 2014)

Realizzare il proprio sistema di web mapping è diventato quasi un obbligo per chi vuole entrare nel mondo dei GIS; è facile comprare qualcosa di già pronto come ESRI ArcServer, ma è molto più impegnativo imparare come effettivamente funziona un webGIS e saper valutare il costo dei componenti, dei database spaziali e del server, necessari per implementarlo.

Io ho iniziato buttandomi direttamente sulla soluzione ESRI che è certamente un sistema fenomenale e quando funziona inarrestabile, per il quale tra l’altro  esiste un efficiente servizio di supporto che risponde a tutte le richieste di aiuto, anche le più strane. Però è un sistema abbastanza costoso! Infatti quando sono passato a lavorare con società più piccole che volevano il loro sistema interno di “mapping” e gli proponevo ArcServer, si mettevano a ridere. Col senno di poi ho capito il perché: per società con al massimo 40 dipendenti, spendere 100.000 sterline per un webGIS, è eccessivo!

Quasi per una sorta di purificazione dell’anima, ho pensato che poteva essere utile, per quelli di voi che vogliono entrare nel mondo del web mapping, condividere la mia esperienza di amore/odio in questo settore fino ad oggi.

MapServer o GeoServer … questo è il dilemma

Ok, chiariamo una cosa fin da subito: se si ha intenzione di realizzare un webGIS, il mio consiglio è orientarsi verso delle soluzioni open source. Certo ci sono sistemi come Mapbox, CartoDB, QGIS cloud, LizMap ed altri che offrono delle soluzioni gratuite di web mapping, ma poi danno a disposizione un spazio disco limitato (intorno ai 50 Mb) e non comprendono tanti strumenti che sono necessari. Al limite ciò può andare bene per fare dei test o per semplici attività, ma in fin dei conti ci si sente un pò presi in giro! … Per avere il pieno controllo, si ha realmente il bisogno di costruirsi da soli il proprio sistema partendo da zero.

Quando 6 anni fà (cioè nel 2008) mi sono per la prima volta affacciato a questo mondo, se si volevano realizzare sistemi di web mapping, c’erano due sole soluzioni: GeoServer o MapServer. Entrambi lavorano sia sotto Windows che su Linux, entrambi sono ben sviluppati e sono open source e completamente gratuiti. Esistono poi diversi strumenti che ne permettono agevolmente lo sviluppo e l’adattamento per le proprie esigenze. Ecco quindi che mi si è subito posto il problema di quale scegliere.

Sulla carta, GeoServer e MapServer sono abbastanza simili; entrambi consentono di pubblicare dati geospaziali in quasi tutti i formati e per entrambi esistono delle grandi comunità che possono fornire aiuto e consulenza. Al limite, se vi trovate in panne e non riuscite a cavarvela, per entrambi i sistemi c’è anche un supporto commerciale.

La differenza principale fra i due, è il linguaggio di programmazione con cui sono stati sviluppati. Anche se entrambi i sistemi utilizzano una combinazione di linguaggi per alcuni strumenti, GeoServer è basato su Java mentre MapServer su “C” con molte funzionalità realizzate anche in PHP.

Ma facciamo un pò marcia indietro, … già stiamo parlando linguaggi di programmazione!
Per pubblicare qualcosa sul web, è necessario come ottenere i dati in un formato che possa essere trasmesso su Internet. Per fare questo è necessario un cosiddetto web server e in particolare nel caso di mappe un map-server o geo-server; qualcosa che prelevi dei dati geospaziali (come shapefile, file DXF o altro) e produca del codice per trasmetterli sulla rete.

web server

Come mostra la figura sopra, un web server può essere visto come un “convertitore” tramite cui dei dati, trasmessi su Internet, possano arrivare al computer dell’utente finale che li ha richiesti. Nel caso delle mappe, il protocollo più comunemente usato per trasmetterle è il WMS (Web Map Service).

Gli elementi base per iniziare e realizzare un sistema funzionante, sia con MapServer che GeoServer, sono: un web server (Apache, IIS o altro) più eventuali servlet (come per es.Tomcat, Jetty), dei tool per la conversione dei geodati (Gdal, Ftools), una raccolta di sistemi di proiezione (Proj4), degli strumenti per realizzare un web client (per es. OpenLayers) e delle mappe demo.

Inizialmente il vostro sistema di prova, sarà un computer su una rete locale (LAN): il cosiddetto localhost (http://localhost). Esso non è visibile all’esterno su Internet perchè non ha un indirizzo IP pubblico (ovvero un nome dominio pubblico, es: www.miosito.com) che lo rende raggiungibile a tutti. Se volete realizzare un web server (o map server) che sia pubblico, dovrete acquistare un servizio di hosting (o housing) da uno dei tanti Internet providers che esistono sul mercato. Ma qui non ci interessa parlare di questo aspetto e all’inizio lavorare solo con un localhost, va bene lo stesso per imparare.

MapServer o GeoServer … il dilemma c’è ancora

Tornando a questa fatidica domanda, la mia prima scelta da novellino è stata MapServer e vi spiego subito il perchè.
Quello che mi convinse fu la sua integrazione con QGIS, uno dei GIS desktop open source che preferisco. Infatti dopo esservi realizzati la vostra bella mappa con QGIS, tramite un apposito plugin, basta premere un bottone e viene generata una web map (più propriamente un mapfile) compatibile per MapServer.

RT Mapserver exporter

Per la verità, la compatibilità non è al 100%, ma comunque è molto meglio così, che costruirsi la mappa (il mapfile) da zero a mano. Il fascino di poter comodamente usare e combinare shapefile e raster con QGIS e poi inviarli su Internet con un semplice bottone, per me ancora alle prime armi, è stato forte !

Stupidamente avevo pensato che una volta installati MapServer e QGIS, avevo già tutto quello che mi serviva a per conquistare il mondo del web mapping. Beh non era proprio così … mi sbagliavo!
QGIS fornisce solo un mapfile che poi va ottimizzato, poi bisogna realizzare una pagina web per ospitare la mappa prodotta da MapServer e poi aggiungere tutti gli strumenti per gestirla (per es. con OpenLayers). Dopo aver passato la mia gioventù a programmare con il Sinclair ZX80 e ZX8, adesso ero davanti a un nuovo grosso passo:  capire come funzionano HTML , CSS e OpenLayers!

Suggerimento 1 : Firebug è un componente di Mozilla Firefox, che può risultarti molto molto utile. Si tratta di uno strumento che permette di esplorare il codice della pagine web che si caricano sul browser e quindi vedere come funzionano HTML, CSS e JavaScript. Dopo averlo attivato, spostandosi sulle varie parti di una pagina col mouse, evidenzia come è fatto e come funziona (o non funziona) il codice che ci sta sotto.

seo-firebug

Non ho paura di dire che la mia prima mappa assomigliava a qualcosa di peggio di un brutto gioco per lo ZX Spectrum; gli strumenti non funzionavano correttamente a causa di link difettosi, alcuni dei layer della mappa non venivano rappresentati correttamente e, peggio di tutto, mi sentivo completamente un pesce fuor d’acqua!
Provai anche a fare delle domande nei forum, ma a quanto pare le mie domande erano così banali, che quasi sempre venivano ignorate.

Dopo circa un mese di tentavi per sviluppare quello che nelle mie intenzioni avevo pensato come un nuovo Google Earth, mi fermai per riflettere.

Non mollate, la situazione non è mai così brutta come sembra

Dopo un paio di mesi a rimuginare su quanto avevo fatto e a sentirmi un fallito, mi sono rimesso in corsa leggendo un paio di tutorial su QGIS scritti dalla fantastica Anita Graser. Non mi vergogno a dire che sono un fan appassionato  di Anita; quando facevo pratica con QGIS, l’ho contattato un pò di volte su Twitter e lei è stata molto paziente con me, aiutandomi a fare dei bei progressi. Inutile dire che, dopo un’altro paio di settimane di tentativi ed errori, finalmente ero riuscito a realizzare una web map funzionante!

Suggerimento 2 : Non abbiate paura di fare domande! In siti web (forum) come GIS StackExchange potete trovare alcuni dei migliori esperti del settore, che scrivono e danno tanti ottimi consigli. Anche se fate le domande più stupide, ottenere una risposta: ci siamo passati tutti !!

Suggerimento 3 : Scaricate e installate PostgreSQL e PostGIS. PostGIS è un database spaziale molto simile al geodatabase ESRI,  basato su SQL, che consente un modo  efficiente e flessibile di memorizzare dei dati spaziali. Esso è il sistema più diffuso per lo storage nei sistemi webGIS ed è supportato dalla maggior parte dei software, compresi i nostri MapServer e GeoServer.

PostgreSQL - PostGIS

Un cambiamento è buono come un periodo di riposo

Anche se finalmente avevo avuto successo con MapServer, come sapete bene, un principiante pensa che l’erba più verde è sempre da un’altra parte. E così ho deciso di passare a  GeoServer.
Molto simile a MapServer, Geoserver funziona subito dopo che lo installate sul vostro “localhost” ed ha una bella interfaccia web per l’importazione e la gestione dei dati.

Per essere onesti, anche se con QGIS e MapServer avevo trovato un sistema semplice per pubblicare mappe sul web, l’interfaccia di amministrazione di GeoServer, rendeva più semplice capire come funzionano effettivamente le cose. Si possono caricare layer, applicare stili (in formato SLD) e poi tramite una funzione di anteprima vedere subito il risultato.
L’unico lato negativo? GeoServer non prevede un sistema integrato per pubblicare mappe su pagine web; esso nasce essenzialmente come server WMS, WFS … etc. Quindi poi bisogna destreggiarsi con HTML e librerie di scripting, per realizzare un web client.

Suggerimento 4 : In GeoServer  i gruppi di layer sono una risorsa potente e versatile; con essi è possibile creare facilmente  una mappa di base raggruppando insieme più layer o pubblicare una semplice mappa statica da leggere direttamente sul browser tramite una richiesta WMS.

Suggerimento 5 : statico e slippy … essenzialmente esistono 2 diversi tipi di web map: un tipo statico, che non è altro che una foto, e un tipo interattivo  noto nell’ambiente anche come “slippy”.

Il grande vantaggio di GeoServer è che, se non si vogliono creare delle web map (o lo si fa con altri sistemi) ma solamente trasmetterle su internet tramite WMS, è un sistema quasi perfetto!

GeoServer welcomeUn servizio WMS può essere usato (ricevuto) dalla maggior parte dei sistemi GIS come QGIS, ArcGIS, uDIG, CadCorp e GRASS, per citarne alcuni. Come già detto, il tempo e gli sforzi richiesti con GeoServer sono in gran parte necessari per progettare il web client: impostare la cornice con la mappa, realizzare gli strumenti per gestire la mappa,  la legenda, il logo e tutto quanto quel che serve per avere una visione gradevole e funzionale.

La lezione imparata

Che cosa ho imparato da tutto questo? Non bisogna avvere paura ad avventurarsi.
Tutto quello che ho imparato provando e giocando con MapServer, anche se con un linguaggio diverso, è simile nella struttura a quello che offre GeoServer. I componenti e il modo in cui il cuore dei due sistemi lavora, è essenzialmente la stesso. Bisogna solo decidere quale si preferisce.
Una volta che si inizia a sperimentare con uno di essi, si comincia anche a rispettare e apprezzare la complessità di software come ArcGIS e QGIS  ed allo stesso tempo si inizia a capire come si integra il tutto. Anche se può essere una esperienza stressante ed umiliante, è una strada che consiglio a qualunque principiante.

Ma perché bisogna soffrire così tanto ?

Ok, siamo arrivati al momento in cui vi devo svelare i trucchi ninja: perchè bisogna passare attraverso tante difficoltà e sofferenze? E se invece esistesse un sistema, con la fantastica interfaccia di GeoServer ma anche integrato con QGIS e che poi include l’installazione di PostGIS e una interfaccia web per le mappe con un’infinità di strumenti utili …. tutto open source e con un servizio di supporto (ad un costo incredibilmente basso) quando ne avete bisogno ?

Lo ammetto, due anni fa mi sono mangiato le mani, quando ho scoperto OpenGeo Suite della Boundless che, anche se ha le sue stranezze, offre una soluzione che permette di evitare molte delle difficoltà che ho dovuto affrontare.
Certo, richiede un pò di impegno per configurarlo ed alcuni degli strumenti, come la stampa e gli stili CSS, non funzionano così di punto in bianco. Ma se è per questo, ci sono persone, me compreso, che offrono supporto per installarlo e per aggiungere e configurare altri eventuali funzionalità. Non dico questo per farmi pubblicità e vendere i miei servizi, ma perché da quando ho scoperto OpenGeo Suite sono rimasto così entusiasta, che mi piacerebbe farlo conoscere al mondo intero.

OpenGeo suite

Si possono arrivare a spendere centinaia di migliaia di sterline per realizzare  webGIS aventi un GIS come front-end ed un sistema di web mapping in uscita. Ma usare OpenGeo Suite è davvero semplice come creare le mappe con QGIS ed esportarle in GeoServer; poi per la visualizzazione dei layer sulle pagine web nessun problema, si utilizza GeoExplorer.

Il punto è ?

Costruire un sistema di web mapping è per un principiante un impegno spaventosamente complesso; si viene letteralmente bombardati da una marea di nuovi termini e di metodi. Programmatori e sviluppatori vi riempiranno di domande a proposito del sistema di cache delle tiles o delle richieste GetFeatureInfo; mentre l’utente medio vi chiederà cose del tipo: “posso fare l’upload del mio file NetCDF?”.

La vostra esperienza sarà certamente migliore della mia, visto che negli anni la tecnologia si è sviluppata velocemente! Oggi abbiamo QGIS server che in pratica mette insieme QGIS e MapServer e abbiamo GeoServer che è arrivato alla versione 2.5. (n.d.r.: oggi siamo alla versione 2.9) E poi su Twitter e StackExchange ci sono tanti utenti da cui si può ricevere aiuto facilmente.

Qual’è in definitiva il mio consiglio?
Realizzate un sistema di web mapping da zero come se fosse un hobby; spendete ogni sera qualche ora per studiare e fare delle prove con GeoServer o MapServer. Provate, provate e pubblicate le vostre mappe usando come sistema server il vostro localhost.

Quando avrete fatto sufficiente esperienza, allora passate ad usare OpenGeo Suite e …. stupite il vostro datore di lavoro!

condividi: