3.2. Web Map Service (WMS)
Gli standard 1.1.1 e 1.3.0 WMS implementati in QGIS Server forniscono un’interfaccia HTTP per richiedere immagini di mappe o legende generate da un progetto QGIS. Una tipica richiesta WMS definisce il progetto QGIS da usare, i layer da visualizzare e il formato dell’immagine da generare. Il supporto di base è disponibile anche per Styled Layer Descriptor (SLD).
Specifiche:
Richieste standard fornite da QGIS Server:
Request |
Descrizione |
---|---|
Restituisce metadati XML con informazioni sul server |
|
Restituisce una mappa |
|
Recupera i dati (geometria e valori) per una posizione di pixel |
|
Restituisce i simboli della legenda |
|
Restituisce un documento XML con la descrizione dello stile in SLD |
|
Restituisce informazioni sulla disponibilità di WFS e WCS rispettivamente per i layer vettoriali e raster. |
Richieste del fornitore date da QGIS Server:
Request |
Descrizione |
---|---|
Restituisce un layout QGIS |
|
Restituisce informazioni specifiche su QGIS Server |
|
Restituisce metadati XML sulle capabilities estese opzionali. |
3.2.1. GetCapabilities
Parametri standard per la richiesta GetCapabilities in base alle specifiche OGC WMS 1.1.1 e 1.3.0:
Parametro |
Richiesto |
Descrizione |
---|---|---|
Sì |
Nome del servizio (WMS) |
|
Sì |
Nome della richiesta (GetCapabilities) |
|
No |
Versione del servizio |
La richiesta GetCapabilities supporta anche i seguenti parametri del fornitore:
Parametro |
Richiesto |
Descrizione |
---|---|---|
Sì |
File di progetto QGIS |
Esempio di URL:
http://localhost/qgis_server?
SERVICE=WMS
&VERSION=1.3.0
&REQUEST=GetCapabilities
3.2.2. GetMap
Parametri standard per la richiesta GetMap secondo le specifiche OGC WMS 1.1.1 e 1.3.0:
Parametro |
Richiesto |
Descrizione |
---|---|---|
Sì |
Nome del servizio (WMS) |
|
Sì |
Nome della richiesta (GetMap) |
|
Sì |
Versione del servizio |
|
No |
Layer da visualizzare |
|
No |
Stile del layers |
|
Sì |
Sistema di riferimento delle Coordinate |
|
Sì |
Estensione Mappa |
|
Sì |
Larghezza dell’immagine in pixel |
|
Sì |
Altezza dell’immagine in pixel |
|
No |
Formato immagine |
|
No |
Sfondo trasparente |
|
SLD |
No |
URL di un SLD da usare per lo stile |
SLD_BODY |
No |
SLD in linea (XML) da usare per lo stile |
Oltre a quelli standard, QGIS Server supporta redlining, external WMS layers e i seguenti parametri extra:
Parametro |
Richiesto |
Descrizione |
---|---|---|
Sì |
File di progetto QGIS |
|
No |
Specifica del colore di sfondo |
|
No |
Specifica della risoluzione in uscita |
|
No |
Compressione JPEG |
|
No |
Opacità per il layer o il gruppo |
|
No |
Sottoinsieme di elementi |
|
No |
Elementi principali |
|
FILE_NAME |
No |
Nome del file scaricato Solo per |
No |
Opzioni del formato di file specificato Solo per |
|
No |
Lavorare in modalità tassellata |
Esempio di URL:
http://localhost/qgis_server?
SERVICE=WMS
&VERSION=1.3.0
&REQUEST=GetMap
&MAP=/home/qgis/projects/world.qgs
&LAYERS=mylayer1,mylayer2,mylayer3
&STYLES=style1,default,style3
&OPACITIES=125,200,125
&CRS=EPSG:4326
&WIDTH=400
&HEIGHT=400
&FORMAT=image/png
&TRANSPARENT=TRUE
&DPI=300
&TILED=TRUE
VERSION
Questo parametro permette di specificare la versione del servizio da utilizzare. I valori disponibili per il parametro VERSION
sono:
1.1.1
1.3.0
A seconda del numero di versione, ci si devono aspettare leggere differenze come spiegato più avanti per i prossimi parametri:
CRS
/SRS
BBOX
LAYERS
Questo parametro permette di specificare i layer da visualizzare sulla mappa. I nomi devono essere separati da una virgola.
Inoltre, QGIS Server ha introdotto alcune opzioni per selezionare i layer:
un short name
il layer id
L’opzione del progetto che consente di selezionare i layer in base al loro id si trova nel menu Usa gli id dei layer come nomi per attivare questa opzione.
della finestra di dialogo . Seleziona la casella di controllohttp://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&LAYERS=mylayerid1,mylayerid2
&...
STYLES
Questo parametro può essere usato per specificare lo stile di un layer per il processo di visualizzazione. Gli stili devono essere separati da una virgola. Il nome dello stile predefinito è default
.
SRS / CRS
Questo parametro permette di indicare il sistema di riferimento spaziale in uscita dalla mappa in WMS 1.1.1 e deve essere formulato come EPSG:XXXX
. Nota che SR
è supportato anche se la versione corrente è 1.1.1.
Per WMS 1.3.0, il parametro SR
è preferibile ma è supportato anche SRS
.
Nota che se entrambi i parametri SR
e SRS
sono indicati nella richiesta, allora è la versione corrente indicata nel parametro VERSION
che è decisiva.
Nel prossimo caso, il parametro SRS
è mantenuto qualunque sia il parametro VERSION
perché SR
non è indicato:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.3.0
&SRS=EPSG:2854
&...
Nel prossimo caso, il parametro SRS
viene tenuto al posto di SR
a causa del parametro VERSION
:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.1.1
&CRS=EPSG:4326
&SRS=EPSG:2854
&...
Nel prossimo caso, il parametro SR
viene tenuto al posto di SRS
a causa del parametro VERSION
:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.3.0
&CRS=EPSG:4326
&SRS=EPSG:2854
&...
BBOX
Questo parametro permette di specificare l’estensione della mappa con unità secondo il SR corrente. Le coordinate devono essere separate da una virgola.
Il parametro BBOX
è formato come min_a,min_b,max_a,max_b
ma la definizione degli assi a
e b
è diversa secondo il parametro corrente VERSION
:
in WMS 1.1.1, la disposizione degli assi è sempre est/nord
in WMS 1.3.0, la disposizione degli assi dipende dall’autorità del SR
Per esempio nel caso di EPSG:4326
e WMS 1.1.1, a
è la longitudine (est) e b`
la latitudine (nord), portando a una richiesta come:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.1.1
&SRS=epsg:4326
&BBOX=-180,-90,180,90
&...
Ma nel caso di WMS 1.3.0, l’ordine degli assi definito nel database EPSG è nord/est quindi a
è la latitudine e b`
la longitudine:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.3.0
&CRS=epsg:4326
&BBOX=-90,-180,90,180
&...
WIDTH
Questo parametro permette di specificare la larghezza in pixel dell’immagine in uscita.
HEIGHT
Questo parametro permette di specificare l’altezza in pixel dell’immagine in uscita.
FORMAT
Questo parametro può essere usato per specificare il formato dell’immagine della mappa. I valori disponibili sono:
jpg
jpeg
image/jpeg
image/png
image/png; mode=1bit
image/png; mode=8bit
image/png; mode=16bit
application/dxf
: solo i layer che hanno accesso in lettura al servizio WFS vengono esportati in formato DXF.Esempio di URL:
http://localhost/qgisserver? SERVICE=WMS&VERSION=1.3.0 &REQUEST=GetMap &FORMAT=application/dxf &LAYERS=Haltungen,Normschacht,Spezialbauwerke &CRS=EPSG%3A21781 &BBOX=696136.28844801,245797.12108743,696318.91114315,245939.25832905 &WIDTH=1042 &HEIGHT=811 &FORMAT_OPTIONS=MODE:SYMBOLLAYERSYMBOLOGY;SCALE:250 &FILE_NAME=plan.dxf
TRANSPARENT
Questo parametro booleano può essere usato per specificare la trasparenza dello sfondo. I valori disponibili sono (non sensibili alle maiuscole):
TRUE
FALSE
Tuttavia, questo parametro viene ignorato se il formato dell’immagine indicato con ``FORMAT”” è diverso da PNG.
BGCOLOR
Questo parametro permette di indicare un colore di sfondo per l’immagine della mappa. Tuttavia non può essere combinato con il parametro TRANSPARENT
in caso di immagini PNG (la trasparenza ha la priorità). Il colore può essere letterale o in notazione esadecimale.
Esempio di URL con la notazione letterale:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.3.0
&BGCOLOR=green
&...
Esempio di URL con la notazione esadecimale:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.3.0
&BGCOLOR=0x00FF00
&...
DPI
Questo parametro può essere usato per specificare la risoluzione in uscita richiesta.
IMAGE_QUALITY
Questo parametro è usato solo per le immagini JPEG. Per impostazione predefinita, la compressione JPEG è -1
.
Puoi cambiare il default per ogni progetto QGIS nel menu GetMap
puoi farlo usando il parametro IMAGE_QUALITY
.
OPACITIES
Elenco separato da virgole di valori di opacità. L’opacità può essere impostata a livello di layer o di gruppo. I valori consentiti vanno da 0
(completamente trasparente) a 255
(completamente opaco).
Esempio di URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.3.0
&WIDTH=400
&HEIGHT=200
&CRS=EPSG:4326
&LAYERS=countries,places
&BBOX=42,-6,52,15
&OPACITIES=255,0
FILTER
Un sottoinsieme di layer può essere selezionato con il parametro FILTER
. La sintassi è fondamentalmente la stessa della stringa del sottoinsieme di QGIS. Tuttavia, ci sono alcune restrizioni per evitare introduzioni SQL nei database tramite QGIS Server. Se viene trovata una stringa pericolosa nel parametro, QGIS Server restituirà l’errore successivo:
<ServiceExceptionReport>
<ServiceException code="Security">The filter string XXXXXXXXX has been rejected because of security reasons.
Note: Text strings have to be enclosed in single or double quotes. A space between each word / special character is mandatory.
Allowed Keywords and special characters are IS,NOT,NULL,AND,OR,IN,=,<,=<,>,>=,!=,',',(,),DMETAPHONE,SOUNDEX.
Not allowed are semicolons in the filter expression.</ServiceException>
</ServiceExceptionReport>
Esempio di URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.3.0
&WIDTH=400
&HEIGHT=300
&CRS=EPSG:4326
&BBOX=41,-6,52,10
&LAYERS=countries_shapeburst,countries,places
&FILTER=countries_shapeburst,countries:"name" = 'France';places: "name" = 'Paris'
In questo esempio, lo stesso filtro "name" = 'France'
viene applicato ai layer countries
e countries_shapeburst
, mentre il filtro "name" = 'Paris'
viene applicato solo a places
.
Nota
È possibile fare ricerche di attributi tramite GetFeatureInfo e omettere il parametro X/Y se c’è un FILTER. QGIS Server restituisce quindi le informazioni sugli elementi corrispondenti e genera un perimetro di delimitazione combinato nell’XML in uscita.
SELECTION
Il parametro SELECTION
può evidenziare elementi da uno o più layer. Gli elementi vettoriali possono essere selezionati passandogli liste separate da virgole con gli id degli elementi.
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&LAYERS=mylayer1,mylayer2
&SELECTION=mylayer1:3,6,9;mylayer2:1,5,6
&...
L’immagine seguente presenta la risposta di una richiesta GetMap utilizzando l’opzione SELECTION
, ad esempio http://myserver.com/...&SELECTION=countries:171,65
.
Poiché questi id degli elementi corrispondono nell’insieme dei dati di origine a France e Romania sono evidenziati in giallo.
FORMAT-OPTIONS
Questo parametro può essere usato per specificare le opzioni per il formato selezionato. Solo per FORMAT=application/dxf
. Una lista di coppie chiave:valore separate da punto e virgola:
SCALE: da usare per le regole della simbologia, i filtri e gli stili (non la scalatura effettiva dei dati - i dati rimangono nella scala originale).
MODE: corrisponde alle opzioni di esportazione offerte nella finestra di dialogo di esportazione DXF di QGIS Desktop. I valori possibili sono
NOSYMBOLOGY
,FEATURESYMBOLOGY
eSYMBOLLAYERSYMBOLOGY
.LAYERSATTRIBUTES: specifica un campo che contiene valori per i nomi dei layer DXF - se non specificato, vengono usati i nomi originali dei layer QGIS.
USE_TITLE_AS_LAYERNAME: se abilitato, il titolo del layer sarà usato come nome del layer.
CODEC: specifica un codec da usare per la codifica. Il valore predefinito è
ISO-8859-1
, verificare la finestra di dialogo di esportazione DXF di QGIS desktop per i valori validi.NO_MTEXT: usa TEXT invece di MTEXT per le etichette.
FORCE_2D: Forza il risultato in 2D. Questo è richiesto per la larghezza della polilinea.
TILED
Per ragioni di performance, QGIS Server può essere usato in modalità tiled. In questa modalità, il client richiede diverse piccoli tasselli di dimensioni fisse, e le assembla per formare l’intera mappa. Facendo questo, i simboli al o vicino al confine tra due tasselli possono apparire tagliati, perché sono presenti solo in uno dei tasselli.
Imposta il parametro TILED
a TRUE
per dire a QGIS Server di lavorare in modalità tiled, e di applicare il Tassello buffer configurato nel progetto QGIS (vedi Configura il tuo progetto).
Quando TILED
è TRUE
e quando un Tassello buffer non nullo è configurato nel progetto QGIS, gli elementi al di fuori dell’estensione del tassello sono disegnati per evitare simboli di taglio ai confini del tassello.
Per default, TILED
è impostato su FALSE
.
3.2.3. GetFeatureInfo
Parametri standard per la richiesta GetFeatureInfo secondo le specifiche OGC WMS 1.1.1 e 1.3.0:
Parametro |
Richiesto |
Descrizione |
---|---|---|
Sì |
Nome del servizio (WMS) |
|
Sì |
Nome della richiesta (GetFeatureInfo) |
|
No |
Versione del servizio |
|
Sì |
Layer su cui fare la query |
|
Sì |
Layer da visualizzare (identico a QUERY_LAYERS) |
|
No |
Stile del layers |
|
Sì |
Sistema di riferimento delle Coordinate |
|
No |
Estensione Mappa |
|
Sì |
Larghezza dell’immagine in pixel |
|
Sì |
Altezza dell’immagine in pixel |
|
No |
Sfondo trasparente |
|
No |
Formato in uscita |
|
No |
Numero massimo di elementi da restituire |
|
No |
Colonna pixel del punto da interrogare |
|
No |
Come il parametro I, ma in WMS 1.1.1 |
|
No |
Riga pixel del punto da interrogare |
|
No |
Come il parametro J, ma in WMS 1.1.1 |
|
WMS_PRECISION |
No |
La precisione (numero di cifre) da usare quando si restituisce la geometria (vedi how to add geometry to feature response). Il valore predefinito è |
Oltre a quelli standard, QGIS Server supporta i seguenti parametri extra:
Parametro |
Richiesto |
Descrizione |
---|---|---|
Sì |
File di progetto QGIS |
|
No |
Sottoinsieme di elementi |
|
No |
Tolleranza in pixel per i layer punto |
|
No |
Tolleranza in pixel per i layer linea |
|
No |
Tolleranza in pixel per i layer poligono |
|
No |
Filtrare geometria |
|
No |
Aggiungere suggerimenti mappa al risultato |
|
No |
Aggiungere la geometria al risultato |
Esempio di URL:
http://localhost/qgisserver?
SERVICE=WMS
&VERSION=1.3.0
&REQUEST=GetMap
&MAP=/home/qgis/projects/world.qgs
&LAYERS=mylayer1,mylayer2,mylayer3
&CRS=EPSG:4326
&WIDTH=400
&HEIGHT=400
&INFO_FORMAT=text/xml
&TRANSPARENT=TRUE
&QUERY_LAYERS=mylayer1
&FEATURE_COUNT=3
&I=250
&J=250
INFO_FORMAT
Questo parametro può essere usato per specificare il formato del risultato. I valori disponibili sono:
text/xml
text/html
text/plain
application/vnd.ogc.gml
application/json
QUERY_LAYERS
Questo parametro specifica i layer da visualizzare sulla mappa. I nomi sono separati da una virgola.
Inoltre, QGIS Server introduce opzioni per selezionare i layer in base a:
nome breve
layer id
Per ulteriori informazioni, vedi il parametro LAYERS
definito in GetMap.
FEATURE_COUNT
Questo parametro specifica il numero massimo di elementi per layer da restituire. Per esempio se QUERY_LAYERS
è impostato su layer1,layer2
e FEATURE_COUNT
è impostato su 3
allora saranno restituite un massimo di 3 elementi dal layer1. Allo stesso modo verrà restituito un massimo di 3 elementi dal layer2.
Per impostazione predefinita, viene restituito solo 1 elemento per layer.
I
Questo parametro, definito in WMS 1.3.0, permette di specificare la colonna pixel del punto di interrogazione.
X
Stesso parametro di I
, ma definito in WMS 1.1.1.
J
Questo parametro, definito in WMS 1.3.0, permette di specificare la riga pixel del punto di interrogazione.
Y
Stesso parametro di J
, ma definito in WMS 1.1.1.
FI_POINT_TOLERANCE
Questo parametro specifica la tolleranza in pixel per i layer punto.
FI_LINE_TOLERANCE
Questo parametro specifica la tolleranza in pixel per i layer linea.
FI_POLYGON_TOLERANCE
Questo parametro specifica la tolleranza in pixel per i layer poligono.
FILTER_GEOM
Questo parametro specifica una geometria WKT con cui gli elementi devono intersecarsi.
WITH_MAPTIP
Questo parametro specifica se aggiungere suggerimenti mappa al risultato.
I valori disponibili sono (non sensibili alle maiuscole):
TRUE
FALSE
WITH_GEOMETRY
Questo parametro specifica se aggiungere geometrie al risultato. Per usare questa funzione devi prima abilitare l’opzione Aggiungi la geometria alla risposta dell’oggetto nel progetto QGIS. Vedi Configure your project.
I valori disponibili sono (non sensibili alle maiuscole):
TRUE
FALSE
3.2.4. GetLegendGraphics
Parametri standard per la richiesta GetLegendGraphics in base alle specifiche OGC WMS 1.1.1 e 1.3.0:
Parametro |
Richiesto |
Descrizione |
---|---|---|
Sì |
Nome del servizio (WMS) |
|
Sì |
Nome della richiesta (GetLegendGraphics) |
|
No |
Versione del servizio |
|
Sì |
Layer da visualizzare |
|
No |
Stile del layers |
|
No |
Sistema di riferimento delle Coordinate |
|
No |
Estensione Mappa |
|
No |
Larghezza dell’immagine in pixel |
|
No |
Altezza dell’immagine in pixel |
|
No |
Formato legenda |
|
No |
Sfondo trasparente |
Oltre a quelli standard, QGIS Server supporta parametri aggiuntivi per modificare le dimensioni degli elementi della legenda o le proprietà dei caratteri per i titoli dei layer e le etichette degli elementi:
Parametro |
Richiesto |
Descrizione |
---|---|---|
Sì |
File di progetto QGIS |
|
No |
Larghezza Mappa |
|
No |
Altezza Mappa |
|
No |
Aggiungere il conteggio degli elementi |
|
No |
Regola simbolo da visualizzare |
|
No |
Etichette degli elementi da visualizzare |
|
No |
Spazio tra la cornice della legenda e il contenuto (mm) |
|
No |
Spazio verticale tra i layer (mm) |
|
No |
Spazio verticale tra il titolo del layer e gli elementi (mm) |
|
No |
Spazio verticale tra simbolo e elementi (mm) |
|
No |
Spazio orizzontale tra simbolo ed etichetta (mm) |
|
No |
Larghezza dell’anteprima del simbolo (mm) |
|
No |
Altezza dell’anteprima del simbolo (mm) |
|
No |
Visualizzazione del titolo del layer |
|
No |
Famiglia carattere Layer |
|
No |
Visualizzaione in grassetto del titolo del layer |
|
No |
Dimensione carattere del titolo del layer (pt) |
|
No |
Titolo del layer in corsivo |
|
No |
Colore titolo del layer |
|
No |
Famiglia carattere elemento |
|
No |
Visualizzazione in grassetto etichetta elemento |
|
No |
Dimensione carattere etichetta elemento (pt) |
|
No |
Visualizzazione in corsivo etichetta elemento |
|
No |
Colore etichetta elemento |
BBOX
Questo parametro può essere utilizzato per specificare l’area geografica per la quale deve essere costruita la legenda (il suo formato è descritto here), ma non può essere combinato con il parametro RULE
. Il parametro SRS
/CRS
diventa obbligatorio quando si utilizza il parametro BBOX
.
Esempio di URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphics
&LAYERS=countries,airports
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
Nota
Quando il parametro BBOX
è definito, la legenda viene definita come legenda basata sul contenuto.
WIDTH
Questo parametro non è utilizzato di default, ma diventa obbligatorio quando viene impostato il parametro RULE
. In questo caso, consente di specificare la larghezza in pixel dell’immagine in uscita.
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphics
&LAYER=testlayer%20%C3%A8%C3%A9
&RULE=rule1
&WIDTH=30
&HEIGHT=30
HEIGHT
Questo parametro non è utilizzato di default, ma diventa obbligatorio quando viene impostato il parametro RULE
. In questo caso, consente di specificare l’altezza in pixel dell’immagine in uscita.
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphics
&LAYER=testlayer%20%C3%A8%C3%A9
&RULE=rule1
&WIDTH=30
&HEIGHT=30
FORMAT
Questo parametro può essere utilizzato per specificare il formato dell’immagine della legenda. I valori disponibili sono:
image/jpeg
image/png
application/json
Per JSON, i simboli sono codificati con Base64 e la maggior parte delle altre opzioni relative al layout o ai font non sono prese in considerazione, perché la legenda deve essere costruita sul lato client. Il parametro ``RULE”” non può essere combinato con questo formato.
Esempio di URL con l’output JSON corrispondente:
http://localhost/qgisserver?
SERVICE=WMS&
REQUEST=GetLegendGraphics&
LAYERS=airports&
FORMAT=application/json
E il corrispondente output JSON:
{
"nodes":[
{
"icon":"<base64 icon>",
"title":"airports",
"type":"layer"
}
],
"title":""
}
SRCWIDTH
Questo parametro può essere definito quando è impostato il parametro RULE
. In questo caso, il valore SRCWIDTH
viene inoltrato alla richiesta GetMap
sottostante come parametro WIDTH
, mentre il parametro WIDTH
di GetLegendGraphics
viene usato per la dimensione della legenda dell’immagine.
SRCHEIGHT
Questo parametro può essere definito quando il parametro RULE
è impostato. In questo caso, il valore SRCHEIGHT
viene inoltrato alla richiesta GetMap
sottostante come parametro HEIGHT
, mentre il parametro HEIGHT
di GetLegendGraphics
viene usato per la dimensione della legenda dell’immagine.
SHOWFEATURECOUNT
Questo parametro può essere utilizzato per attivare il conteggio degli elementi nella legenda. I valori disponibili sono (senza distinzione tra maiuscole e minuscole):
TRUE
FALSE
Per esempio:
RULE
Questo parametro è disponibile sui layer con restituzione Rule-based e consente di costruire una legenda con il solo simbolo della regola indicata. Non può essere combinato con il parametro BBOX
né con il formato JSON.
Esempio di URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphics
&LAYERS=mylayer,
&RULE=myrulename
RULELABEL
This parameter allows to control the item label rendering. Available values are (not case sensitive):
TRUE
: visualizza etichetta elementoFALSE
: nasconde etichetta elementoAUTO
: nasconde l’etichetta dell’elemento per i layer con visualizzazione Singolo simbolo`.
Esempio di URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphics
&LAYERS=countries,airports
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&RULELABEL=AUTO
BOXSPACE
Questo parametro consente di specificare lo spazio tra la cornice della legenda e il contenuto in millimetri. Per impostazione predefinita, il valore dello spazio è 2
mm.
Esempio di URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphics
&LAYERS=airports
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&BOXSPACE=0
LAYERSPACE
Questo parametro consente di specificare lo spazio verticale tra i layer in millimetri. Per impostazione predefinita, il valore dello spazio è 3
mm.
Esempio di URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphics
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&LAYERSPACE=0
LAYERTITLESPACE
Questo parametro consente di specificare lo spazio verticale tra il titolo del layer e gli elementi successivi, in millimetri. Per impostazione predefinita, il valore dello spazio è 3
mm.
Esempio di URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphics
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&LAYERTITLESPACE=0
SYMBOLSPACE
Questo parametro consente di specificare lo spazio verticale in millimetri tra il simbolo e l’elemento successivo. Per impostazione predefinita, il valore dello spazio è 2
mm.
Esempio di URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphics
&LAYERS=countries
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&SYMBOLSPACE=0
ICONLABELSPACE
Questo parametro consente di specificare lo spazio orizzontale tra il simbolo e il testo dell’etichetta in millimetri. Per impostazione predefinita, il valore dello spazio è 2
mm.
Esempio di URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphics
&LAYERS=countries,
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&ICONLABELSPACE=0
SYMBOLWIDTH
Questo parametro consente di specificare la larghezza dell’anteprima del simbolo in millimetri. Per impostazione predefinita, il valore della larghezza è 7
mm.
Esempio di URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphics
&LAYERS=countries,
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&SYMBOLWIDTH=2
SYMBOLHEIGHT
Questo parametro consente di specificare l’altezza dell’anteprima del simbolo in millimetri. Per impostazione predefinita, il valore dell’altezza è 4
mm.
Esempio di URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphics
&LAYERS=countries,
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&SYMBOLHEIGHT=2
LAYERTITLE
Questo parametro specifica se visualizzare il titolo del layer.
I valori disponibili sono (non sensibili alle maiuscole):
TRUE
(valore predefinito)FALSE
LAYERFONTFAMILY
Questo parametro specifica la famiglia di caratteri da utilizzare per visualizzare il titolo del layer.
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphics
&LAYERS=countries
&LAYERFONTFAMILY=monospace
LAYERFONTBOLD
Questo parametro specifica se il titolo del layer viene visualizzato in grassetto. I valori disponibili sono (senza distinzione tra maiuscole e minuscole):
TRUE
FALSE
Esempio di URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphics
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&LAYERFONTBOLD=TRUE
LAYERFONTSIZE
Questo parametro specifica la dimensione carattere per visualizzare il titolo del layer in punti.
Esempio di URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphics
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&LAYERFONTSIZE=20
LAYERFONTITALIC
Questo parametro specifica se il titolo del layer viene visualizzato in corsivo. I valori disponibili sono (senza distinzione tra maiuscole e minuscole):
TRUE
FALSE
Esempio di URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphics
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&LAYERFONTITALIC=TRUE
LAYERFONTCOLOR
Questo parametro specifica il colore del titolo del layer. Il colore può essere letterale (red
, green
, ..) o in notazione esadecimale (0xFF0000
, 0x00FF00
, …).
Esempio di URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphics
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&LAYERFONTCOLOR=0x5f9930
ITEMFONTFAMILY
Questo parametro specifica la famiglia di caratteri da utilizzare per la visualizzazione dell’etichetta dell’elemento.
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphics
&LAYERS=countries
&ITEMFONTFAMILY=monospace
ITEMFONTBOLD
Questo parametro specifica se l’etichetta dell’elemento viene visualizzata in grassetto. I valori disponibili sono (senza distinzione tra maiuscole e minuscole):
TRUE
FALSE
Esempio di URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphics
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&ITEMFONTBOLD=TRUE
ITEMFONTSIZE
Questo parametro specifica la dimensione carattere per visualizzare il titolo del layer in punti.
Esempio di URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphics
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&ITEMFONTSIZE=20
ITEMFONTITALIC
Questo parametro specifica se l’etichetta dell’elemento viene visualizzata in corsivo. I valori disponibili sono (senza distinzione tra maiuscole e minuscole):
TRUE
FALSE
Esempio di URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphics
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&ITEMFONTITALIC=TRUE
ITEMFONTCOLOR
Questo parametro specifica il colore dell’etichetta dell’elemento. Il colore può essere letterale (red
, green
, ..) o in notazione esadecimale (0xFF0000
, 0x00FF00
, …).
Esempio di URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphics
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&ITEMFONTCOLOR=0x5f9930
3.2.5. GetStyle(s)
Parametri standard per la richiesta GetStyle (o GetStyles) in base alle specifiche OGC WMS 1.1.1:
Parametro |
Richiesto |
Descrizione |
---|---|---|
Sì |
Nome del servizio (WMS) |
|
Sì |
Nome della request (GetStyle o GetStyles) |
|
Sì |
Layer su cui fare la query |
La request GetStyle supporta anche i seguenti parametri del fornitore:
Parametro |
Richiesto |
Descrizione |
---|---|---|
Sì |
File di progetto QGIS |
Esempio di URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetStyles
&LAYERS=mylayer1,mylayer2
3.2.6. DescribeLayer
Parametri standard per la richiesta DescribeLayer secondo le specifiche OGC WMS 1.1.1 e 1.3.0:
Parametro |
Richiesto |
Descrizione |
---|---|---|
Sì |
Nome del servizio (WMS) |
|
Sì |
Nome della request (DescribeLayer) |
|
Sì |
Layer da descrivere |
|
Sì |
Versione SLD |
La richiesta DescribeLayer supporta anche i seguenti parametri del fornitore:
Parametro |
Richiesto |
Descrizione |
---|---|---|
Sì |
File di progetto QGIS |
Esempio di URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=DescribeLayer
&SLD_VERSION=1.1.0
&LAYERS=mylayer1
Il documento XML si presenta come:
<DescribeLayerResponse xmlns="http://www.opengis.net/sld" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ows="http://www.opengis.net/ows" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:se="http://www.opengis.net/se" xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.1.0/DescribeLayer.xsd">
<Version>1.1.0</Version>
<LayerDescription>
<owsType>wfs</owsType>
<se:OnlineResource xlink:href="http://localhost/qgis_server" xlink:type="simple"/>
<TypeName>
<se:FeatureTypeName>my_vector_layer</se:FeatureTypeName>
</TypeName>
</LayerDescription>
<LayerDescription>
<owsType>wcs</owsType>
<se:OnlineResource xlink:href="http://localhost/qgis_server" xlink:type="simple"/>
<TypeName>
<se:FeatureTypeName>my_raster_layer</se:FeatureTypeName>
</TypeName>
</LayerDescription>
</DescribeLayerResponse>
SLD_VERSION
Questo parametro consente di specificare la versione di SLD. È disponibile solo il valore 1.1.0
.
3.2.7. GetPrint
QGIS Server ha la capacità di creare output di layout di stampa in formato pdf o pixel. Le finestre di layout di stampa nel progetto pubblicato sono usate come modelli. Nella richiesta GetPrint, il client ha la possibilità di specificare i parametri delle mappe e delle etichette del layout contenuto.
La richiesta GetPrint supporta redlining, external WMS layers come pure i seguenti parametri:
Parametro |
Richiesto |
Descrizione |
---|---|---|
Sì |
File di progetto QGIS |
|
Sì |
Nome del servizio (WMS) |
|
Sì |
Nome della richiesta (GetPrint) |
|
No |
Versione del servizio |
|
No |
Layer da visualizzare |
|
Sì |
Modello di layout da utilizzare |
|
Sì |
Sistema di riferimento delle Coordinate |
|
No |
Formato in uscita |
|
No |
Caratteristiche dell’Atlante |
|
No |
Stile del layers |
|
No |
Sfondo trasparente |
|
No |
Opacità per il layer o il gruppo |
|
No |
Elementi principali |
|
No |
Estensione della mappa “X” |
|
No |
Layer della mappa “X” |
|
No |
Stile dei layer della mappa “X” |
|
No |
Scala dei layer della mappa “X” |
|
No |
Rotazione della mappa “X” |
|
No |
Intervallo del reticolo sull’asse x della mappa “X” |
|
No |
Intervallo del reticolo sull’asse y della mappa “Y” |
Esempio di URL:
http://localhost/qgisserver?
SERVICE=WMS
&VERSION=1.3.0
&REQUEST=GetPrint
&MAP=/home/qgis/projects/world.qgs
&CRS=EPSG:4326
&FORMAT=png
&TEMPLATE=Layout%201
&map0:EXTENT=-180,-90,180,90
&map0:LAYERS=mylayer1,mylayer2,mylayer3
&map0:OPACITIES=125,200,125
&map0:ROTATION=45
Nota che il modello di layout può contenere più di una mappa. In questo modo, se vuoi configurare una mappa specifica, devi usare i parametri mappaX:
dove X
è un numero positivo che puoi recuperare grazie alla richiesta GetProjectSettings.
Per esempio:
<WMS_Capabilities>
...
<ComposerTemplates xsi:type="wms:_ExtendedCapabilities">
<ComposerTemplate width="297" height="210" name="Druckzusammenstellung 1">
<ComposerMap width="171" height="133" name="map0"/>
<ComposerMap width="49" height="46" name="map1"/></ComposerTemplate>
</ComposerTemplates>
...
</WMS_Capabilities>
TEMPLATE
Questo parametro può essere utilizzato per specificare il nome di un modello di layout da utilizzare per la stampa.
FORMAT
Questo parametro specifica il formato dell’immagine della mappa. I valori disponibili sono:
png
(default value)image/png
jpg
jpeg
image/jpeg
svg
image/svg
image/svg+xml
pdf
application/pdf
Se il parametro FORMAT
è diverso da uno di questi valori, allora viene restituita una eccezione.
ATLAS_PK
Questo parametro permette di attivare la visualizzazione dell’atlante indicando quali caratteristiche vogliamo stampare. Per ottenere un atlante con tutte gli elementi, si può usare il simbolo *
(secondo il numero massimo di elementi consentito nella configurazione del progetto).
Quando il FORMAT
è pdf
, viene restituito un singolo documento PDF che combina le pagine degli elementi. Per tutti gli altri formati, viene restituita una singola pagina.
mapX:EXTENT
Questo parametro specifica l’estensione per un oggetto della mappa di layout come xmin,ymin,xmax,ymax.
mapX:ROTATION
Questo parametro specifica la rotazione della mappa in gradi.
mapX:GRID_INTERVAL_X
Questo parametro specifica la densità delle linee del reticolo nella direzione X.
mapX:GRID_INTERVAL_Y
Questo parametro specifica la densità delle linee del reticolo nella direzione Y.
mapX:SCALE
Questo parametro specifica la scala della mappa per un oggetto mappa del layout. Questo è utile per assicurare la visibilità dei layer e delle etichette in base alla scala, anche se client e server possono avere algoritmi diversi per calcolare il denominatore della scala.
mapX:LAYERS
Questo parametro specifica i layer per un elemento layout mappa. Per ulteriori informazioni su questo parametro, vedere GetMap Layers.
mapX:STYLES
Questo parametro specifica gli stili dei layer definiti in uno specifico elemento della mappa di layout. Per ulteriori informazioni su questo parametro, vedere GetMap Styles.
3.2.8. GetProjectSettings
Questo tipo di richiesta funziona in modo simile a GetCapabilities, ma è più specifico per QGIS Server e consente a un client di leggere informazioni aggiuntive che non sono disponibili nell’output GetCapabilities:
visibilità iniziale dei layer
informazione sugli attributi vettoriali e i loro tipi di edit
informazione sull’ordine dei layer e l’ordine di rappresentazione
elenco dei layer pubblicati in WFS
mostra se un gruppo nell’albero dei layer è mutually exclusive
La richiesta GetProjectSettings supporta i seguenti parametri:
Parametro |
Richiesto |
Descrizione |
---|---|---|
Sì |
File di progetto QGIS |
|
Sì |
Nome del servizio (WMS) |
|
Sì |
Nome della richiesta (GetProjectSettings) |
3.2.9. GetSchemaExtension
La richiesta GetSchemaExtension consente di recuperare capabilities e operazioni estese opzionali del servizio WMS, come quelle implementate da QGIS Server.
Parametro |
Richiesto |
Descrizione |
---|---|---|
Sì |
File di progetto QGIS |
|
Sì |
Nome del servizio (WMS) |
|
Sì |
Nome della richiesta (GetSchemaExtension) |
Esempio di URL:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetSchemaExtension
Il documento XML si presenta come:
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:wms="http://www.opengis.net/wms" xmlns:qgs="http://www.qgis.org/wms" targetNamespace="http://www.qgis.org/wms" elementFormDefault="qualified" version="1.0.0">
<import namespace="http://www.opengis.net/wms" schemaLocation="http://schemas.opengis.net/wms/1.3.0/capabilities_1_3_0.xsd"/>
<element name="GetPrint" type="wms:OperationType" substitutionGroup="wms:_ExtendedOperation"/>
<element name="GetStyles" type="wms:OperationType" substitutionGroup="wms:_ExtendedOperation"/>
</schema>
3.2.10. Layer WMS esterni
QGIS Server consente di includere layer da server WMS esterni nelle richieste WMS GetMap e WMS GetPrint. Ciò è particolarmente utile se un client web utilizza un layer di sfondo esterno nella mappa web. Per ragioni di prestazioni, tali layer dovrebbero essere richiesti direttamente dal client web (non in cascata tramite il server QGIS). Per la stampa, invece, questi layer devono essere collegati in cascata tramite il server QGIS per apparire nella mappa stampata.
I layer esterni possono essere aggiunti al parametro LAYERS come EXTERNAL_WMS:<layername>. I parametri per i layer WMS esterni (ad esempio url, format, dpiMode, crs, layers, styles) possono essere forniti in seguito come parametri di servizio <layername>:<parameter>. In una richiesta GetMap, questo potrebbe apparire come segue:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&LAYERS=EXTERNAL_WMS:basemap,layer1,layer2
&OPACITIES=100,200,255
&STYLES=,,
&basemap:url=http://externalserver.com/wms.fcgi
&basemap:format=image/jpeg
&basemap:dpiMode=7
&basemap:crs=EPSG:2056
&basemap:layers=orthofoto
&basemap:styles=default
Allo stesso modo, i layer esterni possono essere utilizzati nelle richieste GetPrint:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetPrint
&TEMPLATE=A4
&map0:layers=EXTERNAL_WMS:basemap,layer1,layer2
&map0:EXTENT=<minx,miny,maxx,maxy>
&OPACITIES=100,200,255
&basemap:url=http://externalserver.com/wms.fcgi
&basemap:format=image/jpeg
&basemap:dpiMode=7
&basemap:crs=EPSG:2056
&basemap:layers=orthofoto
&basemap:styles=default
3.2.11. Redlining
Questa funzione è disponibile e può essere utilizzata con le richieste GetMap e GetPrint.
La funzione redlining può essere usata per passare geometrie ed etichette nella richiesta che vengono sovrapposte dal server sull’immagine standard restituita (mappa). Questo permette all’utente di mettere l’accento o magari aggiungere dei commenti (etichette) ad alcune aree, luoghi ecc. che non sono nella mappa standard.
La richiesta GetMap è nel formato:
http://localhost/qgisserver?
SERVICE=WMS
&VERSION=1.3.0
&REQUEST=GetMap
&HIGHLIGHT_GEOM=POLYGON((590000 5647000, 590000 6110620, 2500000 6110620, 2500000 5647000, 590000 5647000))
&HIGHLIGHT_SYMBOL=<StyledLayerDescriptor><UserStyle><Name>Highlight</Name><FeatureTypeStyle><Rule><Name>Symbol</Name><LineSymbolizer><Stroke><SvgParameter name="stroke">%23ea1173</SvgParameter><SvgParameter name="stroke-opacity">1</SvgParameter><SvgParameter name="stroke-width">1.6</SvgParameter></Stroke></LineSymbolizer></Rule></FeatureTypeStyle></UserStyle></StyledLayerDescriptor>
&HIGHLIGHT_LABELSTRING=Write label here
&HIGHLIGHT_LABELSIZE=16
&HIGHLIGHT_LABELCOLOR=%23000000
&HIGHLIGHT_LABELBUFFERCOLOR=%23FFFFFF
&HIGHLIGHT_LABELBUFFERSIZE=1.5
L’equivalente di GetPrint è nel formato (nota che il parametro mapX:
è aggiunto per indicare quale mappa ha il redlining):
http://localhost/qgisserver?
SERVICE=WMS
&VERSION=1.3.0
&REQUEST=GetPrint
&map0:HIGHLIGHT_GEOM=POLYGON((590000 5647000, 590000 6110620, 2500000 6110620, 2500000 5647000, 590000 5647000))
&map0:HIGHLIGHT_SYMBOL=<StyledLayerDescriptor><UserStyle><Name>Highlight</Name><FeatureTypeStyle><Rule><Name>Symbol</Name><LineSymbolizer><Stroke><SvgParameter name="stroke">%23ea1173</SvgParameter><SvgParameter name="stroke-opacity">1</SvgParameter><SvgParameter name="stroke-width">1.6</SvgParameter></Stroke></LineSymbolizer></Rule></FeatureTypeStyle></UserStyle></StyledLayerDescriptor>
&map0:HIGHLIGHT_LABELSTRING=Write label here
&map0:HIGHLIGHT_LABELSIZE=16
&map0:HIGHLIGHT_LABELCOLOR=%23000000
&map0:HIGHLIGHT_LABELBUFFERCOLOR=%23FFFFFF
&map0:HIGHLIGHT_LABELBUFFERSIZE=1.5
Ecco l’immagine prodotta dalla richiesta di cui sopra in cui un poligono e un’etichetta sono disegnati sopra la mappa normale:
Puoi vedere che ci sono diversi parametri in questa richiesta:
HIGHLIGHT_GEOM: Puoi aggiungere POINT, MULTILINESTRING, POLYGON ecc. Supporta le geometrie multiparte. Ecco un esempio:
HIGHLIGHT_GEOM=MULTILINESTRING((0 0 0, 0 1, 1 1))
. Le coordinate dovrebbero essere nel SR della richiesta GetMap/GetPrint.HIGHLIGHT_SYMBOL: Questo controlla come la geometria è evidenziata e si può cambiare la larghezza del tratto, il colore e l’opacità.
HIGHLIGHT_LABELSTRING: Puoi passare il tuo testo di etichettatura a questo parametro.
HIGHLIGHT_LABELSIZE: Questo parametro controlla la dimensione dell’etichetta.
HIGHLIGHT_LABELFONT: Questo parametro controlla il carattere dell’etichetta (ad esempio Arial)
HIGHLIGHT_LABELCOLOR: Questo parametro controlla il colore dell’etichetta.
HIGHLIGHT_LABELBUFFERCOLOR: Questo parametro controlla il colore del buffer dell” etichetta.
HIGHLIGHT_LABELBUFFERSIZE: Questo parametro controlla la dimensione del buffer dell’etichetta.