Progettare un (Web)GIS utilizzando Software Libero
1. Progettare un (Web)GIS
utilizzando Software Libero
Eduard ing. Roccatello <eduard@roccatello.it>
Linux Day 2008 @ RoLUG
Rovigo - 25 Ottobre 2008
2. GIS e informazione territoriale
• GIS, Geographic Information System, è
la sigla che individua la tipologia di
software che lavora con il territorio.
• Un esempio:
– Google Maps, Yahoo! Maps, ViaMichelin,
Microsoft Live Search Maps.
– Sono solo alcune delle applicazioni online che
consentono l’accesso al territorio e alle
informazioni contenute in esso.
Linux Day 2008 - Eduard Roccatello 2
3. GIS e informazione territoriale / 2
• Formalmente un Sistema Informativo
Territoriale (SIT) è un sistema informativo
capace di integrare, memorizzare,
modificare, analizzare, condividere e
visualizzare informazioni geograficamente
referenziate, cioè a cui sono state
associate coordinate geografiche secondo
un preciso sistema di riferimento.
Linux Day 2008 - Eduard Roccatello 3
4. GIS
• I leader del mondo GIS sono enterprise
–ESRI
–ORACLE
–AUTODESK
• Con qualche piacevole eccezione
–GRASS
Linux Day 2008 - Eduard Roccatello 4
5. Software Libero
• Vi siete mai chiesti cosa possono fare
Linux ed il software libero per il vostro
territorio?
Linux Day 2008 - Eduard Roccatello 5
6. Software Libero
• Da sempre la comunità professionale che
opera nel settore GIS considera Linux
come una risorsa.
• Lo sviluppo di applicazioni territoriali
opensource per il pinguino è all’ordine del
giorno.
Linux Day 2008 - Eduard Roccatello 6
7. Approccio alla progettazione
• Gis tecnologia servente
• Focus su interfaccia
• Focus su funzionalità specifiche
• Attenzione ai dati
• Sviluppo prototipale
Linux Day 2008 - Eduard Roccatello 7
8. Interfaccia
• Esistono UI pattern oramai consolidati
• La progettazione dell’interfaccia deve
rispettare regole ben affermate
• Enfasi su usabilità e fruizione del prodotto
Linux Day 2008 - Eduard Roccatello 8
9. Esempi di UI Pattern
• Comandi
– Quali usare
– Come posizionarli
– Come integrarli
• Navigazione
• Accessibilità
• Usabilità
Linux Day 2008 - Eduard Roccatello 9
10. Esempi di UI Pattern / 2
Spariscono i classici
bottoni zoom, info,
evidenzia
Miniatura per
conoscere il
posizionamento
locale e globale
Risultati della ricerca
come punti di partenza
per utilizzare i servizi
collegati
Linux Day 2008 - Eduard Roccatello 10
11. Esempi di UI Pattern / 3
Punti di interesse Controlli per la
intelleggibili navigazione
senza legenda accessori.
Punta e clicca
Linux Day 2008 - Eduard Roccatello 11
12. Esempi di UI Pattern / 4
Controlli concentrati
in alto a sinistra
(desktop like)
Modalità di
visualizzazione e
layer facilmente
selezionabili
Posso cambiare il
punto di vista
dell’osservatore
Linux Day 2008 - Eduard Roccatello 12
13. Esempi di UI Pattern / 5
Salvo, stampo e
condivido informazioni
che mi interessano
Posso aggiungere
fermate intermedie
facendo drag and drop
La descrizione del
percorso affianca la
mappa per facilitare
la comprensione
Linux Day 2008 - Eduard Roccatello 13
14. UI Pattern per la usability
Autocomplete – Suggerimenti durante la ricerca
Briciole di pane – Dove mi trovo?
Linux Day 2008 - Eduard Roccatello 14
15. UI Pattern per la usability / 2
Input Prompt – Orientare l’utente nelle decisioni
Forgiving Format – Interpretiamo l’input dell’utente
Linux Day 2008 - Eduard Roccatello 15
16. Funzionalità specifiche
• Visualizzazione fotorealistica
• Informazioni specifiche
• Funzioni di costruzione percorsi
personalizzati
• Creazione strumenti per il viaggio o
l’escursione
Linux Day 2008 - Eduard Roccatello 16
17. Attenzione ai dati
• Esistono tipologie di dati (geografici)
comuni ed affermate
• Immagini
• Mappe con simbologia immediata (no
legenda)
• Virtual reality
• Dati aggiornati
Linux Day 2008 - Eduard Roccatello 17
18. Dati: esempi dal mondo webgis
Linux Day 2008 - Eduard Roccatello 18
24. Schema architetturale
APPLICAZIONE AJAX
APPLICAZIONE DESKTOP
BROWSER WEB
TRADIZIONALE
Client per l’utente finale Client di editing
APPLICATION SERVER GEO (SPATIAL WEB) SERVER
GEO DBMS
Componenti lato server
Linux Day 2008 - Eduard Roccatello 24
25. GeoDBMS
• Informazioni spaziali e alfanumeriche
memorizzate in un database relazionale.
• FOSS PostgreSQL + PostGIS
Fornisce:
• Sicurezza ed integrità
• Prestazioni (indici spaziali)
• Funzionalità di analisi spaziale
Linux Day 2008 - Eduard Roccatello 25
26. Geospatial Webserver
• Consentono la pubblicazione di dati
geospaziali come mappe ed immagini
(utilizzando Web Map Service) o come
dati (utilizzando Web Feature Service).
• FOSS GeoServer
• Si differenziano per funzionalità, supporto
agli standard ed ambiente operativo.
Linux Day 2008 - Eduard Roccatello 26
27. Client per l’utente finale
• Thin / thick
• Vantaggi e svantaggi
• WebGIS client – caratteristiche peculiari
– nessun plugin specifico
– solo browser (ambiente di esecuzione
potente)
– Massimizzazione prestazioni e
minimizzazione dello scambio dati
Linux Day 2008 - Eduard Roccatello 27
28. Client Amministrazione/gestione
• Funzioni di aggiornamento dati
alfanumerici (anche web)
• Funzioni di aggiornamento dati spaziali
(editing) via applicazione desktop –
connessione con GeoDBMS, controlli di
validazione.
Linux Day 2008 - Eduard Roccatello 28
29. Standard per il GIS
• Punto di riferimento per l’interoperabilità
• Quali standard?
– Definiti dall’Open Geospatial Consortium
– I più importanti ed utilizzati sono
• GML, WMS, WFS, WMC ed SLD
• Standard versus prestazioni
• Standard versus velocità di sviluppo
Linux Day 2008 - Eduard Roccatello 29
30. Standard per il GIS
• Vantaggi
– Standard come documentazione di riferimento
– Indipendenza dal singolo prodotto
– Soluzioni di qualità elevata
• Svantaggi
– Apprendimento complesso
– A volte sono poco supportati
– Complicano lo sviluppo dei prodotti
Linux Day 2008 - Eduard Roccatello 30
31. Modello di sviluppo
• AJAX per rendere i prodotti web più simili
alle applicazioni classiche
– Aggiunta di un layer di comunicazione tra
server e client
– XML, CSS, Javascript e XHTML
• Soluzioni di classe enterprise
– Java J2EE, MVC, ORM
• Soluzioni per la prototipazione veloce
Linux Day 2008 - Eduard Roccatello 31
32. Modello di sviluppo / 2
• Analisi esigenze ed individuazione dati
• Creazione delle tematizzazioni
• Individuazione delle funzioni necessarie
• Impostazione dei servizi geospaziali
• Progettazione componenti
• Sviluppo componente server side
• Sviluppo componente client side
Linux Day 2008 - Eduard Roccatello 32
33. La gestione dell’applicazione
• Aggiornamento dei dati
• Adeguamento costante delle funzionalità
• Adeguamento all’evoluzione del contesto
specifico
Linux Day 2008 - Eduard Roccatello 33
34. Conclusioni
Per applicazioni di successo (nel tempo)
• Attenzione ad interfaccia
• Architettura solida e performante
• Uso di standard (anche se costa di più)
garanzia di sviluppo
• Risorse per la gestione (dati e funzioni)
Linux Day 2008 - Eduard Roccatello 34