MapServer - Marco Negretti · PDF file realizzazione del webGIS • Schema di funzionamento...

36
MapServer Marco Negretti Politecnico di Milano – Polo Regionale di Como e-mail: [email protected] http://geomatica.como.polimi.it - tel +39.031.332.7524 17/05/05 - v 1.0

Transcript of MapServer - Marco Negretti · PDF file realizzazione del webGIS • Schema di funzionamento...

Page 1: MapServer - Marco Negretti · PDF file realizzazione del webGIS • Schema di funzionamento 12 utente internet browser webGIS archivio dati Server web server eent ut e dchieell' t

MapServer

Marco NegrettiPolitecnico di Milano – Polo Regionale di Como

e-mail: [email protected]://geomatica.como.polimi.it - tel +39.031.332.7524

17/05/05 - v 1.0

Page 2: MapServer - Marco Negretti · PDF file realizzazione del webGIS • Schema di funzionamento 12 utente internet browser webGIS archivio dati Server web server eent ut e dchieell' t

proprietà

MapServer è un ambiente di sviluppo open source per la

costruzione di applicazioni web dedicate alla pubblicazione di dati

spaziali

2

Page 3: MapServer - Marco Negretti · PDF file realizzazione del webGIS • Schema di funzionamento 12 utente internet browser webGIS archivio dati Server web server eent ut e dchieell' t

storia

• 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 - Marco Negretti · PDF file realizzazione del webGIS • Schema di funzionamento 12 utente internet browser webGIS archivio dati Server web server eent ut e dchieell' t

ambiente

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

• sorgenti compilabili

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

4

Page 5: MapServer - Marco Negretti · PDF file realizzazione del webGIS • Schema di funzionamento 12 utente internet browser webGIS archivio dati Server web server eent ut e dchieell' t

navigazione interattiva delle carte

5

Selezione dei layer da visualizzare

Strumenti di navigazione• zoom in• zoom out• pan• viste predefinite

Interrogazione degli elementi della carta

Page 6: MapServer - Marco Negretti · PDF file realizzazione del webGIS • Schema di funzionamento 12 utente internet browser webGIS archivio dati Server web server eent ut e dchieell' t

navigazione interattiva delle carte

6

Alcuni esempi: zoom su un’area

Page 7: MapServer - Marco Negretti · PDF file realizzazione del webGIS • Schema di funzionamento 12 utente internet browser webGIS archivio dati Server web server eent ut e dchieell' t

navigazione interattiva delle carte

7

Alcuni esempi: zoom su un’area

Page 8: MapServer - Marco Negretti · PDF file realizzazione del webGIS • Schema di funzionamento 12 utente internet browser webGIS archivio dati Server web server eent ut e dchieell' t

navigazione interattiva delle carte

8

Selezione dei layer

Page 9: MapServer - Marco Negretti · PDF file realizzazione del webGIS • Schema di funzionamento 12 utente internet browser webGIS archivio dati Server web server eent ut e dchieell' t

navigazione interattiva delle carte

9

Selezione dei layer

Page 10: MapServer - Marco Negretti · PDF file realizzazione del webGIS • Schema di funzionamento 12 utente internet browser webGIS archivio dati Server web server eent ut e dchieell' t

navigazione interattiva delle carte

10

Interrogazione di un elemento della carta

• Visualizzazione dei dati associati ad un elemento

Page 11: MapServer - Marco Negretti · PDF file realizzazione del webGIS • Schema di funzionamento 12 utente internet browser webGIS archivio dati Server web server eent ut e dchieell' t

formati supportati

• vettoriali: shapefile, PostGIS/PostgreSQL, ESRI ArcSDE e altri mediante la libreria OGR

• raster: TIFF/GeoTIFF, EPPL7 e altri mediante la libreria GDAL

11

http://www.gdal.org/ogr/

http://www.gdal.org/

Page 12: MapServer - Marco Negretti · PDF file realizzazione del webGIS • Schema di funzionamento 12 utente internet browser webGIS archivio dati Server web server eent ut e dchieell' t

realizzazione del webGIS

• Schema di funzionamento

12

utente internetbrowser

archivio datiwebGIS

Server

web

serv

er

richieste dell'utente- estensione geografica- layer-interrogazioni dati- ...

generazione di pagine HTML(dinamiche) in funzione delle

richieste ricevute

Page 13: MapServer - Marco Negretti · PDF file realizzazione del webGIS • Schema di funzionamento 12 utente internet browser webGIS archivio dati Server web server eent ut e dchieell' t

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

13

Page 14: MapServer - Marco Negretti · PDF file realizzazione del webGIS • Schema di funzionamento 12 utente internet browser webGIS archivio dati Server web server eent ut e dchieell' t

MapServer CGI

14

mapfile: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

Page 15: MapServer - Marco Negretti · PDF file realizzazione del webGIS • Schema di funzionamento 12 utente internet browser webGIS archivio dati Server web server eent ut e dchieell' t

Il Mapfile

• mapfilefile di testo nel quale vengono definiti oggetti e i loro attributi in modo tale da determinare le modalità di visualizzazione di una carta

15

Page 16: MapServer - Marco Negretti · PDF file realizzazione del webGIS • Schema di funzionamento 12 utente internet browser webGIS archivio dati Server web server eent ut e dchieell' t

mapfile

• Oggetti

16

oggetto1attributo1 valoreattributo2 valore...oggetto1.1

attributo valore...

end...endoggetto2attributo1 valore...

end

definizione dell’oggetto 2

definizione dell’oggetto 1

nella definizione di un oggetto è

possibile includere un altro

oggetto

Page 17: MapServer - Marco Negretti · PDF file realizzazione del webGIS • Schema di funzionamento 12 utente internet browser webGIS archivio dati Server web server eent ut e dchieell' t

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)

mapfilegli oggetti

17

Page 18: MapServer - Marco Negretti · PDF file realizzazione del webGIS • Schema di funzionamento 12 utente internet browser webGIS archivio dati Server web server eent ut e dchieell' t

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)

mapfilegli oggetti

18

Page 19: MapServer - Marco Negretti · PDF file realizzazione del webGIS • Schema di funzionamento 12 utente internet browser webGIS archivio dati Server web server eent ut e dchieell' t

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)

mapfilegli oggetti

19

oggetti dello stesso tipo

possono trovarsi in livelli diversi

Page 20: MapServer - Marco Negretti · PDF file realizzazione del webGIS • Schema di funzionamento 12 utente internet browser webGIS archivio dati Server web server eent ut e dchieell' t

mapfile

• un esempio

20

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

Page 21: MapServer - Marco Negretti · PDF file realizzazione del webGIS • Schema di funzionamento 12 utente internet browser webGIS archivio dati Server web server eent ut e dchieell' t

mapfile

• un esempio

21

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

Page 22: MapServer - Marco Negretti · PDF file realizzazione del webGIS • Schema di funzionamento 12 utente internet browser webGIS archivio dati Server web server eent ut e dchieell' t

mapfile

• un esempio

22

layer: 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/doc44/mapfile-reference.html

Page 23: MapServer - Marco Negretti · PDF file realizzazione del webGIS • Schema di funzionamento 12 utente internet browser webGIS archivio dati Server web server eent ut e dchieell' t

template filestruttura base per la generazione delle

pagine dinamiche

23

normale 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/doc44/cgi-reference.html

Page 24: MapServer - Marco Negretti · PDF file realizzazione del webGIS • Schema di funzionamento 12 utente internet browser webGIS archivio dati Server web server eent ut e dchieell' t

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

24

Page 25: MapServer - Marco Negretti · PDF file realizzazione del webGIS • Schema di funzionamento 12 utente internet browser webGIS archivio dati Server web server eent ut e dchieell' t

MapScript

• MapScript permette di utilizzare diversi linguaggi di script (PHP,Perl, Python e Ruby) per accedere alle C API di MapServer–PHP/Mapscript ⇒ PHP–SWIGMapScript ⇒ Perl, Python, Ruby

25

http://mapserver.gis.umn.edu/doc44/phpmapscript-class-guide.html

http://mapserver.gis.umn.edu/doc44/swigmapscript-reference.html

Page 26: MapServer - Marco Negretti · PDF file realizzazione del webGIS • Schema di funzionamento 12 utente internet browser webGIS archivio dati Server web server eent ut e dchieell' t

MapScript

26

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

Page 27: MapServer - Marco Negretti · PDF file realizzazione del webGIS • Schema di funzionamento 12 utente internet browser webGIS archivio dati Server web server eent ut e dchieell' t

MapScript

• file HTML + script

27

HTML

script

chiamate alle API

esempio in PHP

Page 28: MapServer - Marco Negretti · PDF file realizzazione del webGIS • Schema di funzionamento 12 utente internet browser webGIS archivio dati Server web server eent ut e dchieell' t

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&...

28

Le API di MapServer

vengono chiamate come altre funzioni e contribuiscono alla generazione

della pagina

Page 29: MapServer - Marco Negretti · PDF file realizzazione del webGIS • Schema di funzionamento 12 utente internet browser webGIS archivio dati Server web server eent ut e dchieell' t

strumenti di supporto

• Alcuni strumenti utili per lo sviluppo di applicazioni basate su MapServer–MapEdit–Applet Java

29

http://mapserver.gis.umn.edu/contributed.html

Page 30: MapServer - Marco Negretti · PDF file realizzazione del webGIS • Schema di funzionamento 12 utente internet browser webGIS archivio dati Server web server eent ut e dchieell' t

MapEdit

• E’ uno strumento open source per l’editing e la gestione del map file.–permette di impostare i parametri del

map file mediante una interfaccia basata su form

– controlla che la struttura del map file sia corretta

–permette di visualizzare l’anteprima della carta di cui si sta definendo il map file

• Realizzato da DM Solutions

30http://www.maptools.org/maplab/

Page 31: MapServer - Marco Negretti · PDF file realizzazione del webGIS • Schema di funzionamento 12 utente internet browser webGIS archivio dati Server web server eent ut e dchieell' t

MapEdit

31

elenco degli oggetti del

mapfile valori dei parametri per ogni oggetto

aggiungi oggetti al mapfile

apri, salva, nuovo mapfile...

Page 32: MapServer - Marco Negretti · PDF file realizzazione del webGIS • Schema di funzionamento 12 utente internet browser webGIS archivio dati Server web server eent ut e dchieell' t

MapEdit

visualizzazione del mapfile generato

32

Page 33: MapServer - Marco Negretti · PDF file realizzazione del webGIS • Schema di funzionamento 12 utente internet browser webGIS archivio dati Server web server eent ut e dchieell' t

MapEdit

33

anteprima della carta

Page 34: MapServer - Marco Negretti · PDF file realizzazione del webGIS • Schema di funzionamento 12 utente internet browser webGIS archivio dati Server web server eent ut e dchieell' t

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

34

http://www.maptools.org/rosa/

http://mapserver.gis.umn.edu/doc44/jbox-howto.html

Page 35: MapServer - Marco Negretti · PDF file realizzazione del webGIS • Schema di funzionamento 12 utente internet browser webGIS archivio dati Server web server eent ut e dchieell' t

alcune realizzazioni

• MapServer Atlas– http://www2.dmsolutions.ca/gmap/

• Atlas of eastern and southestern europe– http://pentium7.gis.univie.ac.at/mapserver/

atos/htdocs/prototyp/• Fasti on line: database interrogabile

degli scavi archeologici– http://www.fastionline.org/

• Cartoradio: localizzazione delle stazioni di telefonia mobile in Francia– http://www.cartoradio.fr/

35

http://mapserver.gis.umn.edu/gallery.html

Page 36: MapServer - Marco Negretti · PDF file realizzazione del webGIS • Schema di funzionamento 12 utente internet browser webGIS archivio dati Server web server eent ut e dchieell' t

riferimenti

• MapServer ⇒ 4.4.2• MapEdit ⇒ 2.2• Rosa applet ⇒ 1.2.0

36