MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme...

42
MapServer Marco Negretti Politecnico di Milano – Polo Regionale di Como e-mail: [email protected] http://geomatica.como.polimi.it Università degli Studi di Genova - 25/05/07

Transcript of MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme...

Page 1: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

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

Page 2: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

introduzione

MapServer è un ambiente di sviluppo open source per la

costruzione di applicazioni web dedicate alla pubblicazione di dati

spaziali

2

Page 3: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

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

Page 4: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

ambiente

• web server: apache, IIS• S.O: linux/UNIX, Windows, Mac

• sorgenti compilabili

• binari per–Windows–Mac OS X – rpm per Fedora

4

Page 5: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

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/

Page 6: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

navigazione interattiva delle carte

Selezione dei layer da visualizzare

Strumenti di navigazione/interrogazione della carta

6

Page 7: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

navigazione interattiva delle carte

Alcuni esempi: zoom su un’area

7

Page 8: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

navigazione interattiva delle carte

Selezione dei layer

8

Page 9: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

navigazione interattiva delle carte

Interrogazione

• Visualizzazione degli attributi di un oggetto

9

Page 10: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

navigazione interattiva delle carte

Interrogazione

10

Page 11: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

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)

Page 12: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

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

Page 13: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

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

Page 14: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

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

Page 15: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

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

Page 16: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

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

Page 17: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

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

Page 18: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

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

Page 19: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

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

Page 20: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

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

Page 21: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

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

Page 22: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

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

Page 23: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

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

Page 24: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

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

Page 25: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

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

Page 26: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

MapScript

• file HTML + script

HTML

chiamate alle API

esempio in PHP26

script

Page 27: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

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

Page 28: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

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

Page 29: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

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

Page 30: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

chameleon

• Esempio

30

Widget

Page 31: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

chameleon

31

Codice sostituito

Page 32: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

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

Page 33: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

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

Page 34: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

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

Page 35: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

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

Page 36: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

MapEdit

elenco degli oggetti del

mapfile valori dei parametri per ogni oggetto

aggiungi oggetti al mapfile

apri, salva, nuovo mapfile...

36

Page 37: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

MapLab - MapEdit

visualizzazione del mapfile generato

37

Page 38: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

MapLab - MapEdit

anteprima della carta

38

Page 39: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

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

Page 40: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

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

Page 41: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

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

Page 42: MapServer - marconegretti.files.wordpress.com · del progetto ForNet sostenuto dalla NASA insieme al Minnesota Department of Natural Resources ... w e b s e r v e r richieste dell'utente

riferimenti

• MapServer ⇒ 4.10

42http://creativecommons.org/licenses/by-nc-nd/3.0/