3. Servizi
QGIS è in grado di gestire i dati secondo i protocolli standard come descritto da Open Geospatial Consortium (OGC):
WMS 1.1.1 e 1.3.0
WFS 1.0.0 e 1.1.0
OGC API - Features (WFS3)
WCS 1.1.1
WMTS 1.0.0
Ulteriori parametri e richieste sono supportati in aggiunta allo standard originale che migliora notevolmente le possibilità di personalizzazione grazie al motore di visualizzazione QGIS.
3.1. 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 |
---|---|
GetCapabilities |
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 |
Richieste del fornitore date da QGIS Server:
Request |
Descrizione |
---|---|
Restituisce una composizione QGIS |
|
Restituisce informazioni specifiche su QGIS Server |
3.1.1. 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ì |
Versione del servizio |
|
Sì |
Nome della richiesta (GetMap) |
|
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 i seguenti parametri extra:
Parametro |
Richiesto |
Descrizione |
---|---|---|
Sì |
Specifica del 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
SERVICE
Questo parametro deve essere WMS
.
Per esempio:
http://localhost/qgisserver?
SERVICE=WMS
&...
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
REQUEST
Questo parametro è GetMap
nel caso della richiesta GetMap.
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 nome breve
il layer id
Il nome breve di un layer può essere configurato attraverso :menuselection: Proprietà –> Metadati nel menu del layer. Se il nome breve è definito, allora viene usato come predefinito al posto del nome del layer:
http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&LAYERS=mynickname1,mynickname2
&...
Inoltre, c’è un’opzione del progetto che permette di selezionare i layer in base al loro id nel menu Usa gli id del layer come nomi deve essere selezionata.
della finestra di dialogo :menuselection: Progetto –> Proprietà…. Per attivare questa opzione, 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 nel servizio WFS sono esportati nel formato DXF.Esempio di URL:
http://localhost/qgisserver? SERVICE=WMS&VERSION=1.3.0 &REQUEST=GetMap &FORMAT=application/dxf &LAYERS=Haltungen,Normschacht,Spezialbauwerke &STYLES= &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 della mappa indicato con FORMAT
è diverso da PNG.
MAP
Questo parametro permette di definire il file di progetto QGIS da utilizzare.
Come menzionato in GetMap parameters table, MAP
è obbligatorio perché una richiesta ha bisogno di un progetto QGIS per funzionare effettivamente. Tuttavia, la variabile d’ambiente QGIS_PROJECT_FILE
può essere usata per definire un progetto QGIS predefinito. In questo caso specifico, MAP
non è più un parametro richiesto. Per ulteriori informazioni puoi fare riferimento a Configurazione avanzata.
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
Lista separata 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).
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
&LAYERS=mylayer1,mylayer2,mylayer3
&FILTER=mylayer1:"col1";mylayer1,mylayer2:"col2" = 'blabla'
&...
In questo esempio, lo stesso filtro (il campo col2
è uguale alla stringa blabla
) è applicato ai layer mylayer1
e mylayer2
, mentre il filtro su col1
è applicato solo a mylayer1
.
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.1.2. 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) |
|
No |
Versione del servizio |
|
Sì |
Nome della richiesta (GetFeatureInfo) |
|
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ì |
Specifica del 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
REQUEST
Questo parametro è GetFeatureInfo
nel caso della richiesta GetFeatureInfo.
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
Vedi il parametro LAYERS
definito in GetMap per maggiori informazioni.
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.1.3. 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.
Parametri per la richiesta GetPrint:
Parametro |
Richiesto |
Descrizione |
---|---|---|
Sì |
Specifica del file di progetto QGIS |
|
Sì |
Nome del servizio (WMS) |
|
No |
Versione del servizio |
|
Sì |
Nome della richiesta (GetPrint) |
|
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>
REQUEST
Questo parametro deve essere GetPrint
per la richiesta GetPrint.
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 della mappa del layout. Vedi GetMap Layers per maggiori informazioni su questo parametro.
mapX:STYLES
Questo parametro specifica gli stili dei layer definiti in uno specifico oggetto della mappa di layout. Vedi GetMap Styles per maggiori informazioni su questo parametro.
3.1.4. GetLegendGraphics
Sono disponibili diversi parametri aggiuntivi per cambiare la dimensione degli elementi della legenda:
BOXSPACE spazio tra la cornice della legenda e il contenuto (mm)
FORMAT,
image/jpeg
,image/png
orapplication/json
. For JSON, symbols are encoded with Base64 and most other options related to layout or fonts are not taken into account because the legend must be built on the client side.LAYERSPACE spazio verticale tra i layer (mm)
LAYERTITLESPACE spazio verticale tra il titolo del layer e le voci seguenti (mm)
SYMBOLSPACE spazio verticale tra il simbolo e la voce seguente (mm)
ICONLABELSPACE Spazio orizzontale tra il simbolo e il testo dell’etichetta (mm)
SYMBOLWIDTH larghezza dell’anteprima del simbolo (mm)
SYMBOLHEIGHT altezza dell’anteprima del simbolo (mm)
Questi parametri cambiano le proprietà del carattere per i titoli dei layer e le etichette degli oggetti:
LAYERFONTFAMILY / ITEMFONTFAMILY famiglia di caratteri per il titolo del layer / testo dell’articolo
LAYERFONTBOLD / ITEMFONTBOLD
TRUE
per usare un carattere in grassettoLAYERFONTSIZE / ITEMFONTSIZE Dimensione carattere in punti
LAYERFONTITALIC / ITEMFONTITALIC
TRUE
per usare il carattere corsivoLAYERFONTCOLOR / ITEMFONTCOLOR Codice colore esadecimale (ad esempio
#FF0000
per il rosso)LAYERTITLE
FALSE
per ottenere solo la grafica della legenda senza il titolo del layer.RULELABEL:
FALSE
grafica della legenda senza etichette degli elementiAUTO
nasconde l’etichetta dell’elemento per i layer con rappresentazione Simbolo singolo`
Legenda basata sul contenuto. Questi parametri permettono al client di richiedere una legenda che mostri solo i simboli degli elementi che rientrano nell’area richiesta:
BBOX l’area geografica per la quale la legenda dovrebbe essere costruita
CRS / SRS il sistema di riferimento delle coordinate adottato per definire le coordinate della BBOX
SRCWIDTH / SRCHEIGHT se impostati dovrebbero corrispondere ai parametri WIDTH e HEIGHT della richiesta GetMap, per permettere a QGIS Server di scalare i simboli secondo le dimensioni dell’immagine della mappa.
Gli elementi delle legende basate sul contenuto sono basate sull’implementazione di UMN MapServer:
SHOWFEATURECOUNT se impostato a
TRUE
aggiunge nella legenda il conteggio degli elementi come nell’immagine seguente:RULE impostarlo su un dato nome di regola per ottenere solo il simbolo della regola nominata
WIDTH/HEIGHT la dimensione dell’immagine della legenda generata se il parametro RULE è impostato
3.1.5. GetProjectSettings
Questo tipo di richiesta funziona in modo simile a GetCapabilities, ma è più specifico per QGIS Server e permette ad un client di leggere informazioni aggiuntive che non sono disponibili nell’output di 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
3.2. Web Feature Service (WFS)
Gli standard 1.0.0 e 1.1.0 WFS implementati in QGIS Server forniscono un’interfaccia HTTP per interrogare gli elementi geografici da un progetto QGIS. Una tipica richiesta WFS definisce il progetto QGIS da usare e il layer da interrogare.
Documento delle specifiche secondo il numero di versione del servizio:
Richieste standard fornite da QGIS Server:
Request |
Descrizione |
---|---|
GetCapabilities |
Restituisce metadati XML con informazioni sul server |
GetFeature |
Restituisce una selezione di elementi |
DescribeFeatureType |
Restituisce una descrizione dei tipi di elementi e delle proprietà |
Transazione |
Permette l’inserimento, l’aggiornamento o la cancellazione di elementi |
3.2.1. GetFeature
Parametri standard per la richiesta GetFeature secondo le specifiche OGC WFS 1.0.0 e 1.1.0:
Parametro |
Richiesto |
Descrizione |
---|---|---|
SERVICE |
Sì |
Nome del servizio |
VERSION |
No |
Versione del servizio |
REQUEST |
Sì |
Nome della richiesta |
TYPENAME |
No |
Nome dei layer |
OUTPUTFORMAT |
No |
Formato risultato |
RESULTTYPE |
No |
Tipo di risultato |
PROPERTYNAME |
No |
Nome delle proprietà da restituire |
MAXFEATURES |
No |
Numero massimo di elementi da restituire |
SRSNAME |
No |
Sistema di riferimento delle Coordinate |
FEATUREID |
No |
Filtrare gli elementi per id |
FILTER |
No |
Codifica filtro OGC |
BBOX |
No |
Estensione mappa |
SORTBY |
No |
Ordinare i risultati |
Oltre a quelli standard, QGIS Server supporta i seguenti parametri extra:
Parametro |
Richiesto |
Descrizione |
---|---|---|
MAP |
Sì |
Specifica del file di progetto QGIS |
STARTINDEX |
No |
Paginazione |
GEOMETRYNAME |
No |
Tipo di geometria da restituire |
EXP_FILTER |
No |
Espressione di filtraggio |
SERVICE
Questo parametro deve essere WFS
nel caso della richiesta GetFeature.
Per esempio:
http://localhost/qgisserver?
SERVICE=WFS
&...
VERSION
Questo parametro permette di specificare la versione del servizio da utilizzare. I valori disponibili per il parametro VERSION
sono:
1.0.0
1.1.0
Se nessuna versione è indicata nella richiesta, allora 1.1.0
è usato per default.
Esempio di URL:
http://localhost/qgisserver?
SERVICE=WFS
&VERSION=1.1.0
&...
REQUEST
Questo parametro è GetFeature
nel caso della richiesta GetFeature.
Esempio di URL:
http://localhost/qgisserver?
SERVICE=WFS
&VERSION=1.1.0
&REQUEST=GetFeature
&...
RESULTTYPE
Questo parametro può essere usato per specificare il tipo di risultato da restituire. I valori disponibili sono:
results
: il risultato predefinitohits
: restituisce solo un conteggio degli elementi
Esempio di URL:
http://localhost/qgisserver?
SERVICE=WFS
&VERSION=1.1.0
&REQUEST=GetFeature
&RESULTTYPE=hits
&...
GEOMETRYNAME
Questo parametro può essere usato per specificare il tipo di geometria da restituire per gli elementi. I valori disponibili sono:
extent
centroid
none
Esempio di URL:
http://localhost/qgisserver?
SERVICE=WFS
&VERSION=1.1.0
&REQUEST=GetFeature
&GEOMETRYNAME=centroid
&...
STARTINDEX
Questo parametro è standard in WFS 2.0, ma è un’estensione per WFS 1.0.0. Attualmente, può essere usato per ignorare alcuni elementi nell’insieme dei risultati e in combinazione con MAXFEATURES
, fornisce la possibilità di sfogliare i risultati.
Esempio di URL:
http://localhost/qgisserver?
SERVICE=WFS
&VERSION=1.1.0
&REQUEST=GetFeature
&STARTINDEX=2
&...
3.3. Web Map Tile Service (WMTS)
Lo standard 1.0.0 WMTS implementato in QGIS Server fornisce un’interfaccia HTTP per richiedere immagini di mappe tassellate generate da un progetto QGIS. Una tipica richiesta WMTS definisce il progetto QGIS da usare, alcuni parametri WMS come i layer da rappresentare, così come i parametri dei tasselli.
Documento di specifiche del servizio:
Richieste standard fornite da QGIS Server:
Request |
Descrizione |
---|---|
GetCapabilities |
Restituisce metadati XML con informazioni sul server |
GetTile |
Restituisce un tassello |
GetFeatureInfo |
Recupera i dati (geometria e valori) per una posizione di pixel |
3.3.1. GetCapabilities
Parametri standard per la richiesta GetCapabilities secondo le specifiche OGC WMTS 1.0.0:
Parametro |
Richiesto |
Descrizione |
---|---|---|
SERVICE |
Sì |
Nome del servizio (WMTS) |
REQUEST |
Sì |
Nome della richiesta (GetCapabilities) |
Oltre a quelli standard, QGIS Server supporta i seguenti parametri extra:
Parametro |
Richiesto |
Descrizione |
---|---|---|
MAP |
Sì |
Specifica del file di progetto QGIS |
Esempio di URL:
http://localhost/qgisserver?
SERVICE=WMTS
&REQUEST=GetCapabilities
&MAP=/home/qgis/projects/world.qgs
SERVICE
Questo parametro deve essere WMTS
nel caso della richiesta GetCapabilities.
REQUEST
Questo parametro è GetCapabilities
nel caso della richiesta GetCapabilities.
MAP
Questo parametro permette di definire il file di progetto QGIS da utilizzare.
3.3.2. GetTile
Parametri standard per la richiesta GetTile secondo le specifiche OGC WMTS 1.0.0:
Parametro |
Richiesto |
Descrizione |
---|---|---|
SERVICE |
Sì |
Nome del servizio (WMTS) |
REQUEST |
Sì |
Nome della richiesta (GetTile) |
LAYER |
Sì |
Identificatore layer |
FORMAT |
Sì |
Formato in uscita del tassello |
TILEMATRIXSET |
Sì |
Nome della piramide |
TILEMATRIX |
Sì |
Meshing |
TILEROW |
Sì |
Coordinata riga nella mesh |
TILECOL |
Sì |
Coordinata colonna nella mesh |
Oltre a quelli standard, QGIS Server supporta i seguenti parametri extra:
Parametro |
Richiesto |
Descrizione |
---|---|---|
MAP |
Sì |
Specifica del file di progetto QGIS |
Esempio di URL:
http://localhost/qgisserver?
SERVICE=WMTS
&REQUEST=GetTile
&MAP=/home/qgis/projects/world.qgs
&LAYER=mylayer
&FORMAT=image/png
&TILEMATRIXSET=EPSG:4326
&TILEROW=0
&TILECOL=0
SERVICE
Questo parametro deve essere WMTS
nel caso della richiesta GetTile.
REQUEST
Questo parametro è GetTile
nel caso della richiesta GetTile.
LAYER
Questo parametro permette di specificare il layer da visualizzare sul tassello
Inoltre, QGIS Server ha introdotto alcune opzioni per selezionare un layer:
un nome breve
il layer id
Il nome breve di un layer può essere configurato attraverso :menuselection: Proprietà –> Metadati nel menu del layer. Se il nome breve è definito, allora viene usato come predefinito al posto del nome del layer:
http://localhost/qgisserver?
SERVICE=WMTS
&REQUEST=GetTile
&LAYER=mynickname
&...
Inoltre, c’è un’opzione del progetto che permette di selezionare i layer in base al loro id nel menu Usa gli id del livello come nomi deve essere selezionata.
della finestra di dialogo . Per attivare questa opzione, la casella di controllohttp://localhost/qgisserver?
SERVICE=WMTS
&REQUEST=GetTile
&LAYER=mylayerid1
&...
FORMAT
Questo parametro può essere usato per specificare il formato dell’immagine del tassello. I valori disponibili sono:
jpg
jpeg
image/jpeg
image/png
Se il parametro FORMAT
è diverso da uno di questi valori, allora viene usato il formato predefinito PNG.
TILEMATRIXSET
Questo parametro definisce il SR da utilizzare nel calcolo della piramide sottostante. Formato: EPSG:XXXX
.
TILEMATRIX
Questo parametro permette di definire la matrice da utilizzare per il tassello in uscita.
TILEROW
Questo parametro permette di selezionare la riga del tassello da ottenere all’interno della matrice.
TILECOL
Questo parametro permette di selezionare la colonna del tassello da ottenere all’interno della matrice.
MAP
Questo parametro permette di definire il file di progetto QGIS da utilizzare.
Come menzionato in GetMap parameters table, MAP
è obbligatorio perché una richiesta ha bisogno di un progetto QGIS per funzionare effettivamente. Tuttavia, la variabile d’ambiente QGIS_PROJECT_FILE
può essere usata per definire un progetto QGIS predefinito. In questo caso specifico, MAP
non è più un parametro richiesto. Per ulteriori informazioni puoi fare riferimento a Configurazione avanzata.
3.3.3. GetFeatureInfo
Parametri standard per la richiesta GetFeatureInfo secondo la specifica OGC WMTS 1.0.0:
Parametro |
Richiesto |
Descrizione |
---|---|---|
SERVICE |
Sì |
Nome del servizio (WMTS) |
REQUEST |
Sì |
Nome della richiesta (GetFeatureInfo) |
LAYER |
Sì |
Identificatore layer |
INFOFORMAT |
No |
Formato in uscita |
I |
No |
Coordinata X di un pixel |
J |
No |
Coordinata Y di un pixel |
TILEMATRIXSET |
Sì |
|
TILEMATRIX |
Sì |
|
TILEROW |
Sì |
|
TILECOL |
Sì |
Oltre a quelli standard, QGIS Server supporta i seguenti parametri extra:
Parametro |
Richiesto |
Descrizione |
---|---|---|
MAP |
Sì |
Specifica del file di progetto QGIS |
Esempio di URL:
http://localhost/qgisserver?
SERVICE=WMTS
&REQUEST=GetFeatureInfo
&MAP=/home/qgis/projects/world.qgs
&LAYER=mylayer
&INFOFORMAT=image/html
&I=10
&J=5
SERVICE
Questo parametro deve essere WMTS
nel caso della richiesta GetFeatureInfo.
REQUEST
Questo parametro è GetFeatureInfo
nel caso della richiesta GetFeatureInfo.
MAP
Questo parametro permette di definire il file di progetto QGIS da utilizzare.
Come menzionato in GetMap parameters table, MAP
è obbligatorio perché una richiesta ha bisogno di un progetto QGIS per funzionare effettivamente. Tuttavia, la variabile d’ambiente QGIS_PROJECT_FILE
può essere usata per definire un progetto QGIS predefinito. In questo caso specifico, MAP
non è più un parametro richiesto. Per ulteriori informazioni puoi fare riferimento a Configurazione avanzata.
LAYER
Questo parametro permette di specificare il layer da visualizzare sul tassello
Inoltre, QGIS Server ha introdotto alcune opzioni per selezionare un layer:
un nome breve
il layer id
Il nome breve di un layer può essere configurato attraverso :menuselection: Proprietà –> Metadati nel menu del layer. Se il nome breve è definito, allora viene usato come predefinito al posto del nome del layer:
http://localhost/qgisserver?
SERVICE=WMTS
&REQUEST=GetFeatureInfo
&LAYER=mynickname
&...
Inoltre, c’è un’opzione del progetto che permette di selezionare i layer in base al loro id nel menu Usa gli id del livello come nomi deve essere selezionata.
della finestra di dialogo . Per attivare questa opzione, la casella di controllohttp://localhost/qgisserver?
SERVICE=WMTS
&REQUEST=GetFeatureInfo
&LAYER=mylayerid1
&...
INFOFORMAT
Questo parametro permette di definire il formato in uscita del risultato. I valori disponibili sono:
text/xml
text/html
text/plain
application/vnd.ogc.gml
Il valore predefinito è text/plain
.
I
Questo parametro permette di definire la coordinata X del pixel per il quale vogliamo recuperare l’informazione sottostante.
J
Questo parametro permette di definire la coordinata Y del pixel per il quale vogliamo recuperare l’informazione sottostante.
3.4. WFS3 (funzioni API OGC)
WFS3 è la prima implementazione della nuova generazione di protocolli OGC. È descritto dal documento OGC API - Features - Part 1: Core
Di seguito un rapido riassunto informale delle differenze più importanti tra il ben noto protocollo WFS e WFS3:
WFS3 è basato su un’API REST
WFS3 API deve seguire le specifiche OPENAPI
WFS3 supporta più formati di output ma non ne impone nessuno (solo GeoJSON e HTML sono attualmente disponibili in QGIS WFS3) e usa la negoziazione dei contenuti per determinare quale formato deve essere servito al client
JSON e HTML sono cittadini di prima classe in WFS3
WFS3 è autodocumentato (attraverso l’endpoint
/api
)WFS3 è completamente navigabile (tramite link) e consultabile.
Importante
Mentre l’implementazione WFS3 in QGIS può fare uso del parametro MAP
per specificare il file di progetto, la specifica OPENAPI non consente parametri di query aggiuntivi. Per questo motivo si raccomanda vivamente che MAP
non sia esposto nell’URL e che il file di progetto sia specificato nell’ambiente con altri mezzi (ad esempio impostando QGIS_PROJECT_FILE
nell’ambiente tramite una regola di riscrittura del server web).
Nota
L’endpoint API fornisce una documentazione completa di tutti i parametri supportati e dei formati in uscita del tuo servizio. I paragrafi seguenti descriveranno solo i più importanti.
3.4.1. Rappresentazione risorse
L’implementazione di QGIS Server WFS3 attualmente supporta i seguenti formati di rappresentazione delle risorse (output):
HTML
JSON
Il formato che viene effettivamente reso dipenderà dalla negoziazione del contenuto, ma un formato specifico può essere richiesto esplicitamente aggiungendo uno specifico formato agli endpoint.
Le estensioni di specifica del formato supportate sono:
.json
.html
Ulteriori alias di specifica di formato possono essere definiti da endpoint specifici:
.openapi
: alias per.json
supportato dall’endpoint API.geojson
: alias per.json
supportato dagli endpoint Features e Feature
3.4.2. Endpoint
L’API fornisce una lista di endpoint che i client possono richiamare. Il sistema è progettato in modo tale che ogni risposta fornisce un insieme di link per navigare attraverso tutte le risorse fornite.
Punti endpoint forniti dall’implementazione di QGIS sono:
Nome |
Percorso |
Descrizione |
---|---|---|
Pagina di destinazione |
|
Informazioni generali sul servizio e fornisce collegamenti a tutti gli endpoint disponibili |
Conformità |
|
Informazioni sulla conformità del servizio agli standard |
API |
|
Descrizione completa degli endpoint forniti dal servizio e della struttura dei documenti restituiti |
Collezioni |
|
Elenco di tutte le collezioni (cioè » layer vettoriali») fornite dal servizio |
Collezione |
|
Informazioni su una collezione (nome, metadati, estensione ecc.) |
Caratteristiche |
|
Elenco degli elementi forniti dalla collezione |
Elemento |
|
Informazioni su un singolo elemento |
Pagina di destinazione
L’endpoint principale è la Landing Page. Da questa pagina è possibile navigare verso tutti gli endpoint di servizio disponibili. La Landing Page deve fornire collegamenti a
la definizione dell’API (percorso
/api
link delle relazioniservice-desc
eservice-doc
),la dichiarazione di Conformità (percorso
/conformance
, relazione di collegamentoconformance
), ele Collezioni (percorso
/collections
, relazione di collegamentodata
).
Definizione API
La Definizione dell’API è una descrizione conforme a OPENAPI dell’API fornita dal servizio. Nella sua rappresentazione HTML è una pagina navigabile dove tutti gli endpoint e i loro formati di risposta sono accuratamente elencati e documentati. Il percorso di questo endpoint è /api
.
La definizione API fornisce una documentazione completa e autorevole del servizio, compresi tutti i parametri supportati e i formati restituiti.
Nota
Questo endpoint è analogo a GetCapabilities
di WFS
Lista Collezioni
L’endpoint collezioni fornisce una lista di tutte le collezioni disponibili nel servizio. Poiché il servizio «serve» un singolo progetto QGIS, le collezioni sono i layer vettoriali del progetto corrente (se sono stati pubblicati come WFS nelle proprietà del progetto). Il percorso di questo endpoint è /collections/
.
Dettaglio collezione
Mentre l’endpoint delle collezioni non fornisce informazioni dettagliate su ogni collezione disponibile, queste informazioni sono disponibili negli endpoint /collections/{collectionId}
. Le informazioni tipiche includono l’estensione, una descrizione, i SR e altri metadati.
La rappresentazione HTML fornisce anche una mappa navigabile con gli elementi disponibili.
Lista elementi
Questo endpoint fornisce un elenco di tutti gli elementi in una collezione conoscendo l’ID della collezione. Il percorso di questo endpoint è /collections/{collectionId}/items
.
La rappresentazione HTML fornisce anche una mappa navigabile con gli elementi disponibili.
Nota
Questo endpoint è analogo a GetFeature
in WFS 1 e WFS 2.
Dettaglio elemento
Questo endpoint fornisce tutte le informazioni disponibili su un singolo elemento, compresi gli attributi dell’elemento e la sua geometria. Il percorso di questo endpoint è /collections/{collectionId}/items/{itemId}
.
La rappresentazione HTML fornisce anche una mappa navigabile con la geometria degli elementi.
3.4.3. Paginazione
La paginazione di una lunga lista di elementi è implementata nell’API OGC attraverso i link next`
e prev
, il server QGIS costruisce questi link aggiungendo limit
e offset
come parametri della query string.
Esempio di URL:
http://localhost/qgisserver/wfs3/collection_one/items.json?offset=10&limit=10
Nota
Il valore massimo accettabile per limit
può essere configurato con l’impostazione di configurazione del server QGIS_SERVER_API_WFS3_MAX_LIMIT
(vedi: qgis-server-envvar`).
3.4.4. Filtro delle geometrie
Gli elementi disponibili in una collezione possono essere filtrati/ricercati specificando uno o più filtri.
Filtro data e ora
Le collezioni con attributi data e/o datetime possono essere filtrate specificando un argomento datetime
nella stringa della query. Per impostazione predefinita, il primo campo data/ora è usato per il filtraggio. Questo comportamento può essere configurato impostando una dimensione «Date» o «Time» nella sezione della finestra di dialogo delle proprietà del layer.
La sintassi del filtraggio di data e ora è completamente descritta nella Definizione API e supporta anche intervalli (i valori iniziali e finali sono inclusi) oltre a valori singoli.
Esempi URL:
Restituisce solo gli elementi con una dimensione di data corrispondente a 2019-01-01
.
http://localhost/qgisserver/wfs3/collection_one/items.json?datetime=2019-01-01
Restituisce solo gli elementi con dimensione datetime che corrisponde a 2019-01-01T01:01:01
.
http://localhost/qgisserver/wfs3/collection_one/items.json?datetime=2019-01-01T01:01:01
Restituisce solo gli elementi con dimensione datetime nell’intervallo 2019-01-01T01:01:01
- 2019-01-01T12:00:00
.
http://localhost/qgisserver/wfs3/collection_one/items.json?datetime=2019-01-01T01:01:01/2019-01-01T12:00:00
Filtro rettangolo di delimitazione
Un filtro spaziale bounding box può essere specificato con il parametro bbox
:
L’ordine degli elementi separati da virgola è:
Angolo inferiore sinistro, longitudine WGS 84
Angolo inferiore sinistro, latitudine WGS 84
Angolo superiore destro, longitudine WGS 84
Angolo superiore destro, latitudine WGS 84
Nota
Le specifiche OGC permettono anche uno specifico bbox a 6 elementi dove il terzo e il sesto elemento sono i componenti Z, questo non è ancora supportato dal server QGIS.
Esempio di URL:
http://localhost/qgisserver/wfs3/collection_one/items.json?bbox=-180,-90,180,90
Se il SR del riquadro di delimitazione non è WGS 84, un CRS diverso può essere specificato usando il parametro opzionale bbox-crs
. L’identificatore del formato SR deve essere nel formato OGC URI:
Esempio di URL:
http://localhost/qgisserver/wfs3/collection_one/items.json?bbox=913191,5606014,913234,5606029&bbox-crs=http://www.opengis.net/def/crs/EPSG/9.6.2/3857
Filtro Attributo
I filtri degli attributi possono essere combinati con il filtro bounding box e sono nella forma generale: <attribute name>=<attribute value>
. Filtri multipli possono essere combinati usando l’operatore AND`
.
Esempio di URL:
filtra tutti gli elementi in cui l’attributo name
è uguale a «my value»
http://localhost/qgisserver/wfs3/collection_one/items.json?attribute_one=my%20value
Le corrispondenze parziali sono supportate anche usando un operatore *
(«star»):
Esempio di URL:
filtra tutti gli elementi in cui l’attributo name
finisce con «value»
http://localhost/qgisserver/wfs3/collection_one/items.json?attribute_one=*value
3.4.5. Ordinamento elemento
È possibile ordinare l’insieme dei risultati per valore di campo usando il parametro della query sortby
.
I risultati sono ordinati in ordine crescente per impostazione predefinita. Per ordinare i risultati in ordine decrescente, si può impostare un flag booleano (sortdesc
):
http://localhost/qgisserver/wfs3/collection_one/items.json?sortby=name&sortdesc=1
3.4.6. Selezione attributo
Gli attributi elemenelementi restituiti da una chiamata Lista elementi possono essere limitati aggiungendo una lista separata da virgole di nomi di attributi nell’argomento opzionale properties
della query string.
Esempio di URL:
restituisce solo l’attributo name
.
http://localhost/qgisserver/wfs3/collection_one/items.json?properties=name
3.4.7. Personalizzare le pagine HTML
La rappresentazione HTML usa un insieme di modelli HTML per generare la risposta. Il template viene analizzato da un motore di template chiamato inja. I template possono essere personalizzati sovrascrivendoli (vedi: Sovrascritture modello). Il template ha accesso agli stessi dati che sono disponibili alla rappresentazione JSON
e alcune funzioni aggiuntive sono disponibili al template:
Funzioni personalizzate modello
path_append( path )
: aggiunge un percorso di cartella all’url correntepath_chomp( n )
: rimuove il numero specificato «n» di componenti di cartella dal percorso url correntejson_dump( )
: stampa i dati JSON passati al modellostatic( path )
: restituisce l’URL completo del percorso statico specificato. Per esempio: «static( «/style/black.css» )» con un percorso radice «http://localhost/qgisserver/wfs3» restituirà «http://localhost/qgisserver/wfs3/static/style/black.css».links_filter( links, key, value )
: Restituisce i link filtrati da un elenco di linkcontent_type_name( content_type )
: Restituisce un nome breve di un tipo di contenuto, per esempio «text/html» restituirà «HTML»
Sovrascritture modello
I modelli e le risorse statiche sono memorizzati nelle sottocartelle della cartella delle risorse API di default del server QGIS (/usr/share/qgis/resources/server/api/
su un sistema Linux), la cartella di base può essere personalizzata cambiando la variabile di ambiente QGIS_SERVER_API_RESOURCES_DIRECTORY
.
Una tipica installazione di Linux avrà il seguente albero di cartelle:
/usr/share/qgis/resources/server/api/
└── ogc
├── schema.json
├── static
│ ├── jsonFormatter.min.css
│ ├── jsonFormatter.min.js
│ └── style.css
└── templates
└── wfs3
├── describeCollection.html
├── describeCollections.html
├── footer.html
├── getApiDescription.html
├── getFeature.html
├── getFeatures.html
├── getLandingPage.html
├── getRequirementClasses.html
├── header.html
├── leaflet_map.html
└── links.html
Per sovrascrivere i modelli puoi copiare l’intero albero in un’altra posizione e assegnare QGIS_SERVER_API_RESOURCES_DIRECTORY
alla nuova posizione.
3.5. Parametri extra supportati da tutti i tipi di richiesta
I seguenti parametri extra sono supportati da tutti i protocolli.
FILE_NAME: se impostato, la risposta del server sarà inviata al client come un file allegato con il nome del file specificato.
Nota
Non disponibile per WFS3.
MAP: Analogamente a MapServer, il parametro
MAP
può essere usato per specificare il percorso del file del progetto QGIS. Puoi specificare un percorso assoluto o un percorso relativo per la posizione dell’eseguibile del server (qgis_mapserv.fcgi
). Se non specificato, QGIS Server cerca i file .qgs nella cartella dove si trova l’eseguibile del server.Esempio:
http://localhost/cgi-bin/qgis_mapserv.fcgi?\ REQUEST=GetMap&MAP=/home/qgis/projects/world.qgs&...
Nota
Puoi definire un QGIS_PROJECT_FILE come variabile d’ambiente per dire all’eseguibile del server dove trovare il file di progetto QGIS. Questa variabile sarà la posizione in cui QGIS cercherà il file di progetto. Se non è definita, userà il parametro MAP nella richiesta e infine cercherà la cartella eseguibile del server.
3.6. REDLINING
Questa funzione è disponibile e può essere usata 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://qgisplatform.demo/cgi-bin/qgis_mapserv.fcgi?map=/world.qgs&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 (si noti che il parametro mappaX:
è aggiunto per dire quale mappa ha il redlining):
http://qgisplatform.demo/cgi-bin/qgis_mapserv.fcgi?map=/world.qgs&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.
3.7. Layer WMS esterni
QGIS Server permette di includere layer da server WMS esterni nelle richieste WMS GetMap e WMS GetPrint. Questo è particolarmente utile se un client web usa un livello di sfondo esterno nella mappa web. Per ragioni di prestazioni, tali livelli dovrebbero essere richiesti direttamente dal client web (non in cascata attraverso il server QGIS). Per la stampa, invece, questi livelli dovrebbero essere collegati in cascata attraverso il server QGIS per apparire nella mappa stampata.
I layer esterni possono essere aggiunti al parametro LAYERS come EXTERNAL_WMS:1. I parametri per i layer WMS esterni (ad esempio url, format, dpiMode, crs, layers, styles) possono essere dati successivamente come parametri di servizio <layername>:<parameter>. In una richiesta GetMap, questo potrebbe apparire così:
http://localhost/qgisserver?
SERVICE=WMS&REQUEST=GetMap
...
&LAYERS=EXTERNAL_WMS:basemap,layer1,layer2
&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
Analogamente, i layer esterni possono essere usati 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>
&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.8. QGIS Server catalog
Il QGIS Server Catalog è un semplice catalogo che mostra l’elenco dei progetti QGIS forniti dal QGIS Server. Fornisce un sito web user-friendly completamente navigabile con capacità di mappatura di base per sfogliare rapidamente i dataset presenti in quei progetti QGIS.
Il QGIS Server catalog usa le variabili QGIS_SERVER_LANDING_PAGE_PROJECTS_DIRECTORIES e QGIS_SERVER_LANDING_PAGE_PROJECTS_PG_CONNECTIONS (vedi Variabili d’ambiente)
Puoi consultare i metadati associati a un progetto e i servizi che fornisce. Vengono forniti anche i link a questi servizi.
Sfogliando un progetto, viene elencato il dataset che serve.
Usa il clic destro su un layer per visualizzare la tabella degli attributi ad esso associati.
È possibile consultare le informazioni degli elementi nella mappa come mostrato nell’immagine qui sotto: