30/11/2009 Componenti di un GIS Un GIS non è solamente un DB spaziale … Corso di Basi di Dati Spaziali a.a. 2009/2010 Dott. Paolo Gallo Componenti di un GIS Le applicazioni richiedono strumenti per la pubblicazione e l’editing dei dati più semplici da usare rispetto alla riga dei comandi. Anche la visualizzazione grafica dei dati spaziali agevola notevolmente la comprensione e il lavoro di editing dei dati. Che cosa è GeoServer ? Web application che permette la pubblicazione e l’editing dei dati geospaziali tramite web Completamente open-source Interamente scritto in Java (vers. 1.4) Utilizza le librerie GeoTools (scritte in java) Funziona in qualsiasi servlet container Gestisce direttamente gli Shapefiles (read/write) Può collegarsi a molti DB spaziali , es Oracle Spatial, MySQL ,DB2 , ArcSDE, PostGIS, SQL Server … Cosa sono gli Shapefile ? Come funziona GeoServer ? Formato di file geospaziale vettoriale introdotto da ESRI , in realtà non è un singolo file ma una terna di files con lo stesso nome ma estensioni diverse : terreni.shp , terreni.dbf , terreni.shx che contengono gli oggetti spaziali e eventualmente dati “classici” associati agli oggetti spaziali. Fondamentale è la possibilità di creare e gestire tali dati con programmi simili a comuni programmi di grafica vettoriale che permettono la creazione, la copia, la modifica, il trascinamento e eventualmente la possibilità di utilizzare una mappa georiferita sullo sfondo per ricavare i dati spaziali degli oggetti vettoriali da una foto della realtà sottostante in modo molto immediato. Utilizzando GeoServer congiuntamente ad un client compatibile è possibile visualizzare ed editare dati geografici attraverso il web od una rete locale : 1 30/11/2009 Architettura WEB Service WEB Service OGC Dove nasce il progetto GeoServer ? Perché usare soluzioni open-source? Inizia nel 2001 da “Vision for New York” Originariamente una implementazione dello standard WFS Organizzazzioni che contribuiscono al progetto Web Map Service, Axios Engineering, Spain WFS Validation, Refractions Research, Canada Complex Feature Modelling, Social Change Online, Australia Web Coverage Service, GeoSolutions, Italy Fondato da The Open Planning Project (TOPP) Scopo dell’organizzazione non profit è quella di realizzare software opensource che permetta ai cittadini di essere parte attiva delle loro comunità( ad esempio pubblicare i piani regolatori dei comuni ) OGC Open Geospatial Consortium Consorzio industriale di 348 tra società, università e agenzie governative Tra i membri Autodesk, Oracle, ESRI, NASA, ESA, MIT, Prezzo Possibilità di provare a fondo il prodotto senza dover pagare per la licenza solo sulla base di demo o elenchi di funzionalità poco chiari Supporto commerciale di qualità in un vero mercato (non il supporto esclusivo del venditore) Strutture di supporto informali (email lists, wiki’s, irc chat channels , ecc. gratuite) Customizzazione e Localizzazione Aggiunta di future funzionalità a costo zero. GeoServer è OGC compliant GeoServer è stato scritto secondo le specifiche del consorzio OGC e la conformità è stata testata dal CITE. Il superamento dei test con certificazione consente l’utilizzo del logo : Microsoft, Google Scopo del consorzio è definire le specifiche per garantire l’interoperabilità tra sistemi informativi geospaziali Creare 'The GeoSpatial Web‘ simile al WWW Specifiche OpenGIS® consultabili liberamente dal sito OGC 2 30/11/2009 WCS , WMS , WFS ? Acronimi che fanno riferimento all’insieme dei protocolli Opengis Web Services (OWS) descritti nelle specifiche OpenGIS® : Specifiche di GeoServer - 1 Interamente conforme alle specifiche WMS e WFS, come testato dal CITE. WMS: Web Map Service. Visuallizza dati geografici come immagini raster eseguendo il rendering (dati origine sia raster che vettoriali). WFS: Web Feature Service. Comunica dati geografici reali (strade, fiumi etc.) da e per l’utente nel formato GML (Geography Markup Language). WFS-T: Web Map Service-Transactional. Permette agli utenti l’accesso e la modifica di features tramite transazioni. WCS: Web Coverage Service, fornisce l’accesso ai dati raster “unrendered” per un elaborazione client-side. Semplice da configurare tramite un interfaccia WEB, non necessita di file di configurazione. Tecnicamente GeoServer è un WFS-T , WMS , WCS. “On the fly” reprojection con un incorporato database EPSG che supporta centinaia di proiezioni default. Supporto dei formati PostGIS, Shapefile, ArcSDE, DB2, Oracle e Microsoft SQL Server . VPF, MySQL, MapInfo, e Cascading WFS sono anch’essi supportati (in beta release). Specifiche di GeoServer - 2 Specifiche di GeoServer - 3 Web Map output come jpeg, gif, png, SVG, e KML. Dati vettoriali “grezzi” disponibili come GML o Shapefiles zippati attraverso il WFS. Pieno supporto dei filtri nei formati dati WFS (ottimizzati dove possibile). Supporto per le transazioni atomiche dei database attraverso lo standard WFS-T protocol, disponibile su tutti i formati di dati. Supporto delle Long Transactions attraverso una implementazione completa delle specifiche contenute nel la sezione Locking del WFS. Innovativo Validation Engine che controlla le features inserite in un insieme topologico con degli attributi basati su regole , per preservare la backend integrity. Anti-aliasing sulle immagini. Conforme agli standard per default – non è necessario effettuare complesse configurazioni solo per utilizzare I dati di base. Lettura dei dati in streaming : non ci sono limiti di memoria alla quantità di dati che viene restituita. Specifiche di GeoServer - 4 Java (J2EE) servlet-based, può essere eseguito in ogni servlet container. Progettato per future estensioni , il codice sorgente è semplice da leggere. Possibilità di gestire nuovi formati di dati con GeoTools DataStore interfaces e helper classes, facendo di GeoServer una interfaccia standard di connessione ai dati. Non necessita di ricompilazione per supportare nuovi formati di dati, i GeoTools DataStores vengono inseriti come dei plug-in in GeoServer, e visualizzati come opzione nell’interfaccia di configurazione grafica. Specifiche di GeoServer - 5 Reale sviluppo open source, tramite una grande community, sempre aperta a nuove collaborazioni, modificando GeoServer per nuove funzionalità. Mapbuilder incorporato , AJAX-style web mapping client, per la visualizzazione istantanea. Documentazione dettagliata e esaustiva in linguaggio semplice da capire. Disponibilità di email list per un supporto veloce. Possibilità di un servizio assistenza e sviluppo a pagamento, fornito da varie società e consulenti . Molto altro.... 3 30/11/2009 Gestione delle richieste Funzionalità avanzate Simili a quanto accade per le pagine web : 1. Richiesta del client (specifica se WFS,WMS,WCS) 2. Accesso al DataSet 3. Risposta (tramite mappa grafica o file con feature ) Sono implementate direttamente, sempre secondo le specifiche OGC svariate funzioni tra le quali : Matematiche : abs, sin, sqrt , StandardDeviation … Manipolazione dati : strLength , int2ddouble … Operazioni spaziali : Disjoint,Equals, Dwithin, B eyond, Intersects, Touches, Crosses, Contains, Overlaps, BBOX, convexHull, buffer, distance …. Primo metodo per effettuare interrogazioni : OGC Filters Secondo metodo per effettuare interrogazioni : CQL OGC Filters Ad esempio, il filtro più semplice da scrivere è chiamato 'featureid' filter, e permette di selezionare una singola feature fornendo il suo id: Stile più succinto e leggibile per le interrogazioni : http://localhost:8080/geoserver/wms/kml_reflect? layers=topp:states&CQL_FILTER=LAND_KM+BETWE EN+100000+AND+150000 http://localhost:8080/geoserver/wms/kml_reflect?lay ers=topp:states&featureid=states.5 Get feature request La stessa interrogazione con i filtri OGC diventa : http:/localhost:8080/geoserver/wms/kml_reflect?la yers=topp:states&FILTER=%3CFilter%3E%3CPrope rtyIsBetween%3E%3CPropertyName%3Etopp:LAN D_KM%3C/PropertyName%3E%3CLowerBoundary %3E%3CLiteral%3E100000%3C/Literal%3E%3C/Lo werBoundary %3E%3CUpperBoundary%3E%3CLiteral%3E150000 %3C/Literal%3E%3C/UpperBoundary%3E%3C/Pro pertyIsBetween%3E%3C/Filter%3E Una richiesta può essere inviata a Geoserver come GET o come POST, entrambi sono gestite in modo simile. Ad es. Una GET si compone delle seguenti parti : 1. 2. 3. 4. 5. 6. The server address - http://localhost:8080/geoserver/ The request type - request=getfeature The service type - service=wfs The version - version=1.0.0 The type name, also known as the data you are querying typename=states The filter used to select exactly what you want from the type 4 30/11/2009 Request type disponibili : Installazione di GeoServer - 1 Possibilità di installazione su Windows, Unix, Mac OSX. GetFeature Transaction Necessita di JDK installato (meglio se ultima versione) LockFeature GetFeatureWithLock GetCapabilities Due possibili installazioni : Pacchetto con Jetty incluso (più semplice) Versione installazione WAR , ad es. se si ha Tomcat già installato. Installazione di GeoServer - 2 Lato Client : OpenLayers La connessione agli shapefiles e ai database PostGIS è installata di serie, mentre per i restanti DB occorre scaricare gli appositi plugin e riavviare il server, se il plugin è correttamente riconosciuto comparirà nella lista del menù di configurazione via web. Libreria in puro javascript per visualizzare mappe all’interno di un browser. Implementa le specifiche WFS e WMS da OGC. GetFeatureInfo L’installazione di Jetty incluso avviene sulla porta 8080, se tale porta è in uso si avrà un conflitto, occorrerà quindi modificare la porta. Supporta i Layer multipli Molte funzionalità implementate per gestione mappe e features (zoom, pan, disegno, esclusione dei layers, viste d’insieme). Utilizzabile con comuni browser (explorer, firefox …) Strumenti di gestione mappe indipendenti dai dati. GeoServer & Google Earth GIS e Pubblica Amministrazione KML grandi quantità di dati con componente geografica È un formato di file per visualizzare dati geografici in un Earth browser, come Google Earth, Google Maps, e Google Maps for mobile. KML utilizza una struttura basata sui tag con elementi annidati e attributi ed è basata sullo standard XML . Quando si produce in output un file KML viene richiesto di aprire il file con il programma Google Earth e l’output viene sovrapposto (sempre correttamente georeferenziato con l’opportuno sistema di riferimento) alla porzione di globo terrestre indicato dalle coordinate spaziali presenti nel file in uscita dal server. necessità di una gestione efficiente dei dati e di un supporto ai processi decisionali che richiedono analisi spaziali i comuni sono la maglia amministrativa elementare del territorio 5 30/11/2009 Dati relativi al comune di Tavagnacco Attività legate ai dati mantenuti Il sistema proposto Il sistema proposto Dati GIS Servizi dall’analisi dei possibili utilizzi, l’attenzione si è concentrata sullo sviluppo di due moduli: USO ESTERNO: prototipo Web GIS per la pubblicazione tramite Internet del Piano Regolatore Generale (PRG). USO INTERNO: prototipo Web GIS che consenta, al personale del comune, di modificare i dati associati alla numerazione civica. in entrambi i moduli sono incluse funzionalità comuni generiche come la ricerca delle vie, la stampa, … Analisi dei dati disponibili Schema ChronoGeoGraph dati raster immagini risoluzione 1pixel = 50 cm al suolo dimensioni totali 1,2 gigabyte ottimizzazioni necessarie per permetterne l’utilizzo via Web dati vettoriali la normativa non indica un modello dei dati tramite reverse design è stato proposto un modello per la gestione dei dati catastali e di quelli relativi alla toponomastica, realizzato tramite ChronoGeoGraph sono state affrontate problematiche legate all’inconsistenza dei dati 6 30/11/2009 Architettura Proposta Scelta dei componenti Il software GIS non è un software monolitico, ma è composto da più componenti che interagiscono fra loro. La scelta dei componenti deve tenere conto delle funzionalità richieste dal caso specifico. Componenti prototipo Riferimenti Sito ufficiale GeoServer : Richieste e Risposte tramite Open Web Services (OWS) geoserver.org Sito ufficiale OpenLayers : openlayers.org Sito ufficiale OGC : www.opengeospatial.org 7