Outdated version of the documentation. Find the latest one here.

.

QGIS come server dati OGC

QGIS Server è un’implementazione WMS 1.3, WFS 1.0.0 e WCS 1 1.1.1 i con caratteristiche molto avanzate per la produzione di carte tematiche. QGIS Server è un’applicazione FastCGI/CGI (Common Gateway Interface) scritta in C++ e lavora insieme ad un server web (es. Apache, Lighttpd). QGIS Server è supportato dai progetti europei Orchestra e Sany e dalla città di Uster in Svizzera.

Usa QGIS come back end per la restituzione delle mappe e per le operazioni gis. Inoltre viene usata la libreria Qt per la grafica e il linguaggio di programmazione C++ per la piattaforma indipendente. A differenza di altri server WMS, QGIS Server usa regole cartografiche come linguaggio di configurazione, sia per la configurazione a livello server che per le configurazioni utente.

Moreover, the QGIS Server project provides the ‘Publish to Web’ plugin, a plugin for QGIS desktop that exports the current layers and symbology as a web project for QGIS Server (containing cartographic visualization rules expressed in SLD).

As QGIS desktop and QGIS Server use the same visualization libraries, the maps that are published on the web look the same as in desktop GIS. The ‘Publish to Web’ plugin currently supports basic symbolization, with the option to introduce more complex cartographic visualization rules manually. As the configuration is performed with the SLD standard and its documented extensions, there is only one standardised language to learn, which greatly simplifies the complexity of creating maps for the Web.

In uno dei prossimi manuali forniremo un esempio per configurare un server QGIS. Per adesso ti consigliamo di leggere i materiali disponibili ad uno dei seguenti URL:

Installazione di esempio su Debian Squeeze

Di seguito è brevemente descritta un’installazione di esempio su Debian Squeeze. Anche molti altri OS hanno pacchetti precompilati per QGIS Server. Se devi compilare da codice sorgente, fai riferimento agli indirizzi web appena citati.

Oltre a QGIS e qgis-mapserver, devi avere installato un server web, come ad esempio apache2. Puoi installare tutti i pacchetti necessari, e relative dipendenze, con aptitude o apt-get install. Dopo l’installazione devi verificare il corretto funzionamento del server web e di QGIS Server. Assicurarti che apache sia stato avviato con /etc/init.d/apache2 start, apri un browser ed vai sull’URL: http://localhost: se hai configurato tutto correttamente dovrebbe apparire il messaggio ’It works!’.

Testa quindi l’installazione di QGIS server. Il file qgis_mapserv.fcgi, disponibile in /usr/lib/cgi-bin/qgis_mapserv.fcgi fornisce un WMS standard con visualizzati i confini dell’Alaska. Carica il WMS in QGIS con l’URL ``http://localhost/cgi-bin/qgis_mapserv.fcgi ``, così come descritto nella Sezione Selezionare server WMS/WMTS.

Figure Server 1:

../../../_images/standard_wms_usa.png

WMS standard con confini USA inclusi nel server QGIS (KDE) nix

Creare un WMS/WFS/WCS da un progetto QGIS

Abbiamo creato un file di progetto di QGIS proprio per fornire un nuovo Server WMS, WFS o WCS. Abbiamo usato lo shapefile ‘Alaska’ dei dati campione di QGIS. Scegli i colori, lo stile dei layer e il SR se non sono ancora specificati.

Figure Server 2:

../../../_images/ows_server_definition.png

Definizioni per un Server WMS/WFS/WCS (KDE)

Dalla finestra di dialogo Progetto ‣ Proprietà progetto scegli il menu Server OWS e specifica qualche informazione sull’OWS nei campi Capabilities del servizio. Questo è quello che apparirà nelle risposte GetCapabilities di WMS, WFS o WCS. Se non spunti la casella di controllo checkbox Capabilities del servizio, QGIS Server userà le informazioni fornite dal file wms_metadata.xml caricato nella cartella cgi-bin .

Capabilities WMS

Nella sezione Capabilities WMS puoi scegliere l’estensione massima della risposta GetCapabilities inserendo i valori minimi e massimi X e Y nel campo Estensione pubblicata. Cliccando su Imposta alla estensione della mappa imposterai questi valori all’estensione attuale della mappa di QGIS. Spuntando la casella di controllo checkbox Restrizioni SR puoi scegliere in quali SR deve venire visualizzata la mappa. Usa il pulsante mActionSignPlus per selezionare i SR dal selettore specifico oppure clicca Usati per aggiungere i SR usati nel progetto di QGIS.

Se hai impostato delle composizioni di stampa nel tuo progetto, queste verranno elencato nella risposta GetCapabilities e li potrai usare con la richiesta GetPrint per creare delle stampe, usando una delle composizioni come modello. Questa è un’estensione di QGIS per le specifiche WMS 1.3.0. Se vuoi escludere dalla pubblicazione WMS qualche composizione di stampa, spunta la casella di controllo checkbox Escludi composizioni e clicca il pulsante mActionSignPlus. Poi, seleziona un compositore dalla finestra di dialogo Scegli il compositore di stampe in modo da aggiungere alla lista le composizione che vuoi escludere.

Se vuoi escludere dalla pubblicazione WMS qualche layer o gruppi di layer, spunta la casella di controllo checkbox Escludi layer e clicca sul pulsante mActionSignPlus. In questo modo si aprirà la finestra di dialogo Seleziona numero limitato di layer e gruppi che ti permetterà di scegliere i layer e i gruppo che non vuoi pubblicare. Usa i tasti Shift o Ctrl se vuoi selezionare più voci contemporaneamente.

Puoi ricevere le GetFeatureInfo richieste come testo normale, XML e GML. XML è il formato predefinito, il testo o il formato GML dipendono dal formato di output scelto dalla richiesta GetFeatureInfo.

Se vuoi, puoi spuntare la casella di controllo checkbox Aggiungi elemento alla risposta geometrie. Questo includerà le geometrie degli elementi in testo normale nelle risposte GetFeatureInfo. Se vuoi che QGIS Server pubblichi le richieste URL nelle risposte capability WMS, inserisci l’URL nel campo URL pubblicato. Inoltre puoi rimpicciolire l’estensione massima della mappa restituita dalla richiesta GetMap inserendo la larghezza e l’altezza massima nei rispettivi campi in Massimi per la richiesta GetMap.

Capabilities WFS

Nell’area Capabilities WFS puoi scegliere i layer che vuoi pubblicare come WFS e specificare se questi devono includere le opzioni aggiorna, inserisci ed elimina. Se inserisci un URL nel campo URL pubblicato della sezione Capabilities WFS, QGIS Server pubblicherà l’URL nelle risposte WFS GetCapabilities.

Capabilities WCS

Nell’area Capabilities WCS puoi scegliere i layer che vuoi pubblicare come WCS. Se inserisci un URL nel campo URL pubblicato della sezione Capabilities WCS, QGIS Server pubblicherà l’URL nelle risposte WCS GetCapabilities.

Salva la sessione nel file di progetto alaska.qgs. Per fornire il progetto come WMS/WFS, devi creare un’altra cartella /usr/lib/cgi-bin/project con privilegi di amministrazione e aggiungere il file di progetto alaska.qgs e una copia del file qgis_mapserv.fcgi. Questo è tutto!

Ora non resta che testare i progetti WMS,WFS e WCS. Aggiungi i WMS, WFS e WCS come descritto nella sezione Caricare layer WMS/WMTS e Client WCS e carica i dati. L’URL è:

http://localhost/cgi-bin/project/qgis_mapserv.fcgi

OWS impostato correttamente

Per i vettori, il menu Campi della finestra di dialogo Layer ‣ Proprietà ti permette di definire quali attributi vuoi pubblicare. In modo predefinito, tutti gli attributi vengono pubblicati. Se vuoi escludere qualche attributo dalla pubblicazione, togli la spunta alla casella di controllo corrispondente nelle colonne WMS o WFS.

Puoi sovrapporre i watermark sulla mappa creati dal WMS aggiungendo note testuali o note SVG al progetto. Vedi la sezione Note Testuali in Strumenti generali per capire come creare le note. Per fare in modo che le note vengano visualizzate come watermark nell’output WMS, la casella di controllo Posizione fissa sulla mappa non deve essere spuntata. Puoi accedere a questa opzione facendo doppio click sulla note quando lo strumento note è attivo. Per le note SVG, devi impostare il salvataggio del progetto con un percorso assoluto (nel menu Generale della finestra di dialogo Progetto ‣ Proprietà progetto) oppure devi modificare manualmente il percorso all’immagine SVG in modo da ottenere un percorso relativo.

Parametri extra supportati dalla richiesta WMS GetMap

Nella richiesta WMS GetMap, QGIS Server accetta alcuni parametri extra ai parametri standard pur rispettando le specifiche OCG WMS 1.3.0:

  • parametro MAPPA: in modo simile a MapServer, puoi usare il parametro MAPPA per specificare il percorso al file di progetto di QGIS. Puoi scegliere fra un percorso assoluto o uno relativo all’eseguibile del server (qgis_mapserv.fcgi). Se non specificato, il server QGIS cerca i file .qgs nella cartella dove è presente l’eseguibile del server.

    Esempio:

    http://localhost/cgi-bin/qgis_mapserv.fcgi?\
      REQUEST=GetMap&MAP=/home/qgis/mymap.qgs&...
  • Parametri DPI: puoi usare i parametri DPI per specificare la risoluzione di output.

    Esempio:

    http://localhost/cgi-bin/qgis_mapserv.fcgi?REQUEST=GetMap&DPI=300&...
  • parametro OPACITÀ: puoi impostare l’opacità per un singolo layer o per un gruppo di layer. I valori vanno da 0 (completamente trasparente) a 255 (completamente opaco).

    Esempio:

    http://localhost/cgi-bin/qgis_mapserv.fcgi?\
      REQUEST=GetMap&LAYERS=mylayer1,mylayer2&OPACITIES=125,200&...