User Tools

Site Tools


doc:appunti:linux:lezioni:mapserver

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
doc:appunti:linux:lezioni:mapserver [2010/05/18 17:42] niccolodoc:appunti:linux:lezioni:mapserver [2013/10/04 11:12] – [gdaltindex] niccolo
Line 63: Line 63:
  
 ==== Limitare i formati offerti da un WMS ==== ==== Limitare i formati offerti da un WMS ====
 +
 +Questa configurazione non funziona con MapServer 5.0.3, funziona invece con la **5.6.3**.
  
 È possibile limitare il tipo di immagine offerto da un WMS, cioè il valore viene restituito dalla GetCapabilities in ''<Capability><Request><GetMap><Format>''. È possibile limitare il tipo di immagine offerto da un WMS, cioè il valore viene restituito dalla GetCapabilities in ''<Capability><Request><GetMap><Format>''.
Line 68: Line 70:
 L'impostazione predefinita è quella di annunciare tutti i formati grafici supportati dal MapServer (lanciare **''mapserv -v''**), non solo quelli per cui è definito il **''MAP.OUTPUTFORMAT''**. L'impostazione predefinita è quella di annunciare tutti i formati grafici supportati dal MapServer (lanciare **''mapserv -v''**), non solo quelli per cui è definito il **''MAP.OUTPUTFORMAT''**.
  
-Ecco le sezioni rilevanti da mettere in un mapfile per limitare - ad esempio - al formato PNG/24 bit:+Ecco le sezioni rilevanti da mettere in un mapfile per limitare - ad esempio - al formato PNG/24 bit e JPEG:
  
 <file> <file>
 MAP MAP
   ...   ...
-  IMAGETYPE agg_png+  IMAGETYPE aggpng24
   ...   ...
   OUTPUTFORMAT   OUTPUTFORMAT
-    NAME "agg_png"+    NAME "aggpng24"
     DRIVER AGG/PNG     DRIVER AGG/PNG
 +    IMAGEMODE RGB
 +  END
 +  OUTPUTFORMAT
 +    NAME "jpeg"
 +    DRIVER "GD/JPEG"
     IMAGEMODE RGB     IMAGEMODE RGB
   END   END
Line 84: Line 91:
     METADATA     METADATA
       ...       ...
-      wms_getmap_formatlist "image/png; mode=24bit"+      wms_getmap_formatlist "image/png; mode=24bit,image/jpeg"
     END     END
     ...     ...
Line 239: Line 246:
   TILEINDEX "toscana_ctr25k_index.dbf"   TILEINDEX "toscana_ctr25k_index.dbf"
   TILEITEM "Location"   TILEITEM "Location"
 +  PROCESSING "RESAMPLE=AVERAGE"
 +  OFFSITE 255 255 255
 +END
 +</file>
 +
 +==== gdalbuildvrt ====
 +
 +In alternativa all'indice di raster si può creare un **virtual raster** (che può essere agevolmente aperto con tutti i programmi che utilizzano una moderna libreria GDAL, come QGIS):
 +
 +<code>
 +cd /usr/local/share/gisdata
 +gdalbuildvrt toscana_ctr25k.vrt raster/toscana_ctr25k/*.tif
 +</code>
 +
 +In questo caso il mapfile ha questa forma:
 +
 +<file>
 +SHAPEPATH "/usr/local/share/gisdata"
 +
 +LAYER
 +  NAME "ctr25k"
 +  STATUS DEFAULT
 +  TYPE RASTER
 +  DATA toscana_ctr25k.vrt
   PROCESSING "RESAMPLE=AVERAGE"   PROCESSING "RESAMPLE=AVERAGE"
   OFFSITE 255 255 255   OFFSITE 255 255 255
Line 275: Line 306:
 </code> </code>
  
-==== Legende ====+===== Ricetta per creazione di un servizio WMS ===== 
 + 
 +  - Creare indice (quadro d'unione) dei raster:<code>gdaltindex 2002_index.shp 2002/*.tif</code> 
 +  - Creare le piramidi (overview). Per un singolo file .tif: <code> 
 +gdaladdo --config USE_RRD YES 287050.tif 2 4 8 16 32 64</code> 
 +  - Oppure per tutti i .tif in una directory: <code>ls *.tif | xargs -I nome_file gdaladdo --config USE_RRD YES nome_file 2 4 8 16 32 64</code> 
 +  - Con GDAL > 1.6.0 vedere ''man gdaladdo'' per il parametro **''%%-ro%%''** e **''%%-r gauss%%''** per creare file esterni e fare il resample di qualità migliore. 
 +  - Creare il file .map: 
 +    - Controllare l'estensione complessiva <code>ogrinfo 2002_index.shp -summary 2002_index</code> 
 +    - Verificare che esistano almeno i seguenti parametri <file> 
 +MAP.EXTENT                       1672800 4843801 1688801 4856418 
 +MAP.IMAGETYPE                    jpeg 
 +MAP.PROJECTION                   "+init=epsg:3003" 
 +WEB.METADATA.wms_title           "WMS Ortofoto" 
 +WEB.METADATA.wms_onlineresource  "http://192.168.2.10/cgi-bin/mapserv?map=..." 
 +WEB.METADATA.wms_srs             "EPSG:3003" 
 +LAYER.STATUS                     OFF 
 +LAYER.PROJECTION                 "+init=epsg:3003" 
 +LAYER.METADATA.wms_title         "Ortofoto 2001" 
 +LAYER.METADATA.wms_srs           "EPSG:3003" 
 +</file> 
 + 
 +===== Legende =====
  
   * **Font**: sono supportati i caratteri TrueType.   * **Font**: sono supportati i caratteri TrueType.
Line 292: Line 345:
 </code> </code>
  
 +===== Ottimizzazione =====
 +
 +Ad ogni esecuzione di MapServer CGI vengono consumate molte risorse per inizializzare l'ambiente. La modalità **FastCGI** permette di mantenere un'istanza del programma sempre in esecuzione, risparmiando molto su ciascuna connessione. Ad esempio per 100 richieste GetCapabilities di un layer WMS si può passare da 8 a 2 secondi di attesa.
 +
 +Installare il pacchetto Debian **libapache2-mod-fastcgi**. La configurazione predefinita prevede di passare al modulo FastCGI tutte le richieste per eseguibili con estensione .fcgi. Con MapServer si può creare un link simbolico **''%%/usr/lib/cgi-bin/mapserv.fcgi -> mapserv%%''** da utilizzare al posto dell'originale **''mapserv''**.
 +
 +Tra i processi in esecuzione si noterà un'istanza di **''mapserv.fcgi''** anche in assenza di richieste da parte dei client.
 +
 +Se un file .map ha diversi layer provenienti dallo **stesso database** può essere utile aprire una sola connessione per tutto il mapfile, invece di aprire e chiudere la connessione per ogni layer. Nei layer interessati si aggiunge la direttiva **''PROCESSING''**:
 +
 +<file>
 +LAYER
 +  CONNECTIONTYPE POSTGIS
 +  PROCESSING "CLOSE_CONNECTION=DEFER"
 +  ...
 +</file>
doc/appunti/linux/lezioni/mapserver.txt · Last modified: 2013/10/04 11:22 by niccolo