MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme...
Transcript of MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme...
MapServer
Marco NegrettiPolitecnico di Milano – Polo Regionale di Como
e-mail: [email protected]://geomatica.como.polimi.it
Università degli Studi di Genova - 25/05/07
introduzione
MapServer è un ambiente di sviluppo open source per la
costruzione di applicazioni web dedicate alla pubblicazione di dati
spaziali
2
introduzione
• E’ stato inizialmente sviluppato alla Univesity of Minnesota (UMN) nell’ambito del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources
• Lo sviluppo è continuato con un altro progetto NASA, il progetto TerraSIP
• MapServer è in continua crescita, con diversi sviluppatori e enti nel mondo che si stanno occupando del suo sviluppo
http://mapserver.gis.umn.edu/3
ambiente
• web server: apache, IIS• S.O: linux/UNIX, Windows, Mac
• sorgenti compilabili
• binari per–Windows–Mac OS X – rpm per Fedora
4
formati supportati• vettoriali:
– shapefile, PostGIS, ESRI ArcSDE, Oracle Spatial, MySQL e altri mediante la libreria OGR
• raster:– TIFF/GeoTIFF, EPPL7 e altri mediante la
libreria GDAL
• Implementa le specifiche del "Open Geospatial Consortium (OGC)":– WMS (client/server), non-transactional WFS
(client/server),
– WMC, WCS, Filter Encoding, SLD, GML, SOS
5
http://www.gdal.org/ogr/
http://www.gdal.org/
http://www.opengeospatial.org/
navigazione interattiva delle carte
Selezione dei layer da visualizzare
Strumenti di navigazione/interrogazione della carta
6
navigazione interattiva delle carte
Alcuni esempi: zoom su un’area
7
navigazione interattiva delle carte
Selezione dei layer
8
navigazione interattiva delle carte
Interrogazione
• Visualizzazione degli attributi di un oggetto
9
navigazione interattiva delle carte
Interrogazione
10
realizzazione del webGIS
• Schema di funzionamentoutente internet
browser
archivio datiwebGIS
Server
web
serv
er
richieste dell'utente- estensione geografica- layer-interrogazioni dati- ...
generazione di pagine HTML(dinamiche) in funzione delle
richieste ricevute
11
Archivio dati:- file (shape, TIFF, ...)- connessione a database- OGC Web Services (OWS)
realizzazione del webGIS
• Due modalità–generazione delle pagine dinamiche
tramite chiamata al programma mapserv (directory /cgi-bin)
⇒ MapServer CGI–utilizzo di linguaggi di script per
la generazione delle pagine HTML dinamiche e accesso ai servizi di MapServer tramite chiamate alle API
⇒ MapScript
12
MapServer CGIMapFile:definizione delle modalità di visualizzazione delle carte
(definizione dei layer, colori, simboli, scala di visualizzazione, attributi interrogabili,...)
template file:struttura della pagina html
utente internetbrowser
archivio dati
webGIS
Server
web
ser
ver
templatemap file
pagine html dinamiche
13
MapFile
• MapFilefile di testo nel quale vengono definiti gli oggetti e i loro parametri in modo tale da determinare le modalità di visualizzazione di una carta
14
MapFile
• Oggetti oggetto1 parametro1 valore parametro2 valore ... oggetto1.1 parametro valore ... end...endoggetto2 parametro1 valore ...end
definizione dell’oggetto 2
definizione dell’oggetto 1
nella definizione di un oggetto è
possibile includere un altro
oggetto
15
POINTS (n)
SYMBOL STYLE (n)
LEGEND LABEL
SCALEBAR LABEL
REFERENCE METADATA PARAMETER (n)
MAP QUERYMAP FEATURE (n) POINTS (n)
LAYER (n) GRID JOIN
OUTPUT FORMAT PROJECTION STYLE (n)
PROJECTION CLASS (n) LABEL
WEB METADATA PARAMETER (n)
gli oggetti
16
MapFile
In alcuni casi posso avere più oggetti dello stesso tipo
sullo stesso livello
POINTS (n)
SYMBOL STYLE (n)
LEGEND LABEL
SCALEBAR LABEL
REFERENCE METADATA PARAMETER (n)
MAP QUERYMAP FEATURE (n) POINTS (n)
LAYER (n) GRID JOIN
OUTPUT FORMAT PROJECTION STYLE (n)
PROJECTION CLASS (n) LABEL
WEB METADATA PARAMETER (n)
gli oggetti
17
MapFile
POINTS (n)
SYMBOL STYLE (n)
LEGEND LABEL
SCALEBAR LABEL
REFERENCE METADATA PARAMETER (n)
MAP QUERYMAP FEATURE (n) POINTS (n)
LAYER (n) GRID JOIN
OUTPUT FORMAT PROJECTION STYLE (n)
PROJECTION CLASS (n) LABEL
WEB METADATA PARAMETER (n)
gli oggetti
oggetti dello stesso tipo
possono trovarsi in livelli diversi
18
MapFile
MapFile
• un esempio
map: definizione dei parametri generali della cartaIn questo oggetto sono contenuti tutti gli altri oggetti del map file
web: definizione dei template e delle directory di sistema
reference: definizione delle caratteristiche della carta di riferimento
19
MapFile
• un esempio
legend: definizione delle caratteristiche della legenda
scalebar: definizione della barra di scala
label: la barra di scala contiene dei caratteri le cui proprietà sono definite con questo oggetto
20
MapFile
• un esempiolayer: definizione delle caratteristiche del layer (file di dati, unità di misura, template per le query,...)
metadata: elenco dei metadati
class: definizione dei parametri di visualizzazione. Per ogni layer posso definire più classi in modo da cambiare le modalità di visualizzazione in base alla scala corrente o al valore di un attributo
style: stile di visualizzazione
http://mapserver.gis.umn.edu/docs/reference/mapfile21
template filestruttura base per la generazione delle
pagine dinamichenormale codice
HTML+
definizione delle “variabili”:
[nome variabile]
MapServer CGI genererà le pagine dinamiche che saranno costituite dal template con i valori che le variabili hanno nella sessione corrente
http://mapserver.gis.umn.edu/docs/reference/templatereference
22
MapServer CGI
Tramite una form MapServer CGI viene chiamato e gli viene passata una stringa con i parametri di stato:
http://geo28.como.polimi.it/cgi-bin/mapserv?img.x=164&img.y=166&mode=browse&layer=reticolo&zoomdir=1&zoomsize=2&imgxy=149.5+149.5&...
In funzione dei quali viene
generata una pagina HTML
Alle variabili viene sostituito il loro valore
corrente
23
MapScript
• MapScript permette di utilizzare diversi linguaggi di script (PHP, Perl, Python e Ruby) per accedere alle C API di MapServer–PHP/Mapscript ⇒ PHP–SWIG MapScript ⇒ Perl, Python,
Ruby, Java
http://mapserver.gis.umn.edu/docs/reference/phpmapscript-class
http://mapserver.gis.umn.edu/docs/reference/mapscript/
24
MapScript
MapFile:definizione delle modalità di visualizzazione delle carte
file html + script:gli script richiamano le API di MapServer per visualizzare gli oggetti (carte, legenda,...)
utente internetbrowser
C API
archivio dati
webGIS
Server
web
ser
ver
html+
scriptmap file
pagine html dinamiche
25
MapScript
• file HTML + script
HTML
chiamate alle API
esempio in PHP26
script
Gli script vengono eseguiti e
“costruiscono” la pagina HTML
MapScriptSempre tramite una form vengono passati i parametri di stato: http://geo28.como.polimi.it/wgis_00/cartaj.phtml?
layer=bacino_po&layer=ret_carto&zoomsize=2&...
Le API di MapServer
vengono chiamate come altre funzioni e contribuiscono alla generazione
della pagina
27
chameleon
Chameleon• E' un ambiente distribuito e personalizzabile per lo sviluppo di applicazioni web.• E' sviluppato utilizzando MapServer come motore (utilizzando la libreria PHP/MapScript).• MapFile per la definizione delle proprietà dei dati da pubblicare.• Template file, con una struttura diversa da quello visto per MapServer CGI, per la definizione della pagina da pubblicare.
http://chameleon.maptools.org/
Sviluppato da DM Solutions: http://www.dmsolutions.ca/28
chameleon
Il funzionamento si basa sul concetto di widget• I widget sono richiamati medianti particolari tag all'interno della pagina HTML del template• Ad ogni widget corrisponde una determinata funzione• Quando la pagina viene caricata, chameleon sostituisce ai widget il codice generato in funzione dello stato corrente• E' possibile creare dei nuovi widget introducendo così nuove funzioni
29
chameleon
• Esempio
30
Widget
chameleon
31
Codice sostituito
ka-Mapka-MapApplicazione interattiva di web-mapping, con navigazione continua (tipo google maps)• Lato Client:– AJAX e DHTML➔ navigazione continua
● Lato Server:– MapServer - Mapscript– PHP e GD➔ creazione tile
http://ka-map.maptools.org/
Sviluppato da DM Solutions: http://www.dmsolutions.ca/32
ka-Map
Alcuni riferimenti:
http://www.ominiverdi.it/
il wiki:- http://ka-map.ominiverdi.org/
alcuni esempi di applicazioni:- http://www.ominiverdi.it/index.php?page=Ka-Map!&toc=kamap#
33
MapLabMapLabsuite di strumenti web-based che supportano la creazione e la gestione di applicazioni web basate su MapServer. E’ costituita da tre componenti: • MapEdit: strumento visuale per l’editing e la gestione dei mapfile di MapServer• MapBrowser: strumento visuale che per la selezione di dati spaziali da una fonte locale o da un server WMS• GMapFactory: strumento di supporto allo sviluppo di applicazioni di web mapping (definizione layout della pagina web e inclusione degli strumenti di navigazione/interrogazione)
http://www.maptools.org/maplab/
Sviluppato da DM Solutions: http://www.dmsolutions.ca/34
MapLab - MapEdit
• Con MapEdit si possono facilmente controllare di tutti gli aspetti di configurazione del MapFile ed inoltre ne effettua la validazione, garantendone così la correttezza– permette di impostare i parametri del
MapFile mediante una interfaccia basata su form
– controlla che la struttura del MapFile sia corretta
– permette di visualizzare l’anteprima della carta di cui si sta definendo il MapFile
35
MapEdit
elenco degli oggetti del
mapfile valori dei parametri per ogni oggetto
aggiungi oggetti al mapfile
apri, salva, nuovo mapfile...
36
MapLab - MapEdit
visualizzazione del mapfile generato
37
MapLab - MapEdit
anteprima della carta
38
applet java
• gli applet java possono essere utilizzati per aggiungere funzionalità a MapServer–zoom box, pan, query box, misura di
distanze,...
• jBox java applet
• Rosa java applet http://www.maptools.org/rosa/
http://mapserver.gis.umn.edu/docs/howto/jbox
39
pacchetti software
FGS Linux Installer• pacchetto software che include MapServer, Apache, PHP e tutte le librerie necessarie per utilizzare MapServer sotto LinuxMapServer for Windows - MS4W• pacchetto software che include MapServer e tutte le librerie necessarie per utilizzare MaPServer sotto Windows
http://www.maptools.org/fgs/
http://www.maptools.org/ms4w/40
alcune realizzazioni
• MapServer Atlas– http://www2.dmsolutions.ca/gmap/
• Autorità di bacino del fiume Po - AdbPo– http://www.adbpo.it/maplab_projects/webgis/adbpo_gis
/inizio.phtml?inizio=APi– http://www.adbpo.it/maplab_projects/webgis/adbpo_gis
/inizio.phtml?inizio=SMo
• Fasti on line: database interrogabile degli scavi archeologici– http://www.fastionline.org/
• GeoDemo: rappresentazione cartografica di alcuni dati e indicatori ISTAT – http://geodemo.istat.it/geoindex.html
http://mapserver.gis.umn.edu/gallery
41
riferimenti
• MapServer ⇒ 4.10
42http://creativecommons.org/licenses/by-nc-nd/3.0/