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
doc:appunti:linux:lezioni:mapserver [2010/04/21 17:07] niccolodoc:appunti:linux:lezioni:mapserver [2013/10/04 09:22] (current) – [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>''.
  
-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:+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 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 82: Line 91:
     METADATA     METADATA
       ...       ...
-      wms_getmap_formatlist "image/png; mode=24bit"+      wms_getmap_formatlist "image/png; mode=24bit,image/jpeg"
     END     END
     ...     ...
Line 98: Line 107:
 | **Cartografia internazionale GPS**  || | **Cartografia internazionale GPS**  ||
 | WGS84  |  4326 | | WGS84  |  4326 |
 +
 +===== Tool GDAL/OGR =====
  
 ==== ogrinfo ==== ==== ogrinfo ====
Line 156: Line 167:
 </code> </code>
  
-==== Path relativi ====+===== Path relativi =====
  
 **Mai usare path assoluti nei file map!** Nella peggiore delle ipotesi l'unico path assoluto può essere contenuto in **''SHAPEPATH''**. **Mai usare path assoluti nei file map!** Nella peggiore delle ipotesi l'unico path assoluto può essere contenuto in **''SHAPEPATH''**.
Line 181: Line 192:
 gdaltindex toscana_ctr_25k_index toscana/ctr_25k/*.tif gdaltindex toscana_ctr_25k_index toscana/ctr_25k/*.tif
 </code> </code>
 +
 +===== Tool per tiles =====
  
 ==== tile4ms ==== ==== tile4ms ====
Line 222: Line 235:
 </code> </code>
  
-Il file indice è uno shapefile, analogamente a quanto visto con ''tile4ms''. Va indicato con la direttiva **''TILEINDEX''** che si intende **relativa a ''SHAPEPATH''**. L'indice deve contenere il percorso dei file raster relativi a ''SHAPEPATH'', non al file indice.+Il file indice è uno shapefile, analogamente a quanto visto con ''tile4ms''. Va indicato con la direttiva **''TILEINDEX''** che si intende **relativa a ''SHAPEPATH''**. L'indice deve contenere il percorso dei file raster relativi a ''SHAPEPATH'', non al file indice. Con **''OFFSITE''** si indica quale colore deve essere considerato trasparente:
  
 <file> <file>
Line 233: 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 269: 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 286: 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.1271869672.txt.gz · Last modified: 2010/04/21 17:07 by niccolo