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

Post on 30-Mar-2018

216 views 3 download

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

MapServer

Marco NegrettiPolitecnico di Milano – Polo Regionale di Como

e-mail: marco.negretti@polimi.ithttp://geomatica.como.polimi.it - tel +39.031.332.7524

17/05/05 - v 1.0

proprietà

MapServer è un ambiente di sviluppo open source per la

costruzione di applicazioni web dedicate alla pubblicazione di dati

spaziali

2

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

ambiente

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

• sorgenti compilabili

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

4

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

navigazione interattiva delle carte

6

Alcuni esempi: zoom su un’area

navigazione interattiva delle carte

7

Alcuni esempi: zoom su un’area

navigazione interattiva delle carte

8

Selezione dei layer

navigazione interattiva delle carte

9

Selezione dei layer

navigazione interattiva delle carte

10

Interrogazione di un elemento della carta

• Visualizzazione dei dati associati ad un elemento

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/

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

MapScript

• file HTML + script

27

HTML

script

chiamate alle API

esempio in PHP

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

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

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/

MapEdit

31

elenco degli oggetti del

mapfile valori dei parametri per ogni oggetto

aggiungi oggetti al mapfile

apri, salva, nuovo mapfile...

MapEdit

visualizzazione del mapfile generato

32

MapEdit

33

anteprima della carta

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

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

riferimenti

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

36