22. Lavorare con i protocolli OGC / ISO

L’Open Geospatial Consortium (OGC), è un’organizzazione internazionale che raggruppa più di 300 organizzazioni commerciali, governative, no-profit ed enti di ricerca. I suoi membri sviluppano e implementano standard per contenuti e servizi geospaziali, analisi GIS e scambio dati.

Nel descrivere un modello di dati di base per le caratteristiche geografiche, un numero crescente di specifiche viene sviluppato dall’OGC per soddisfare esigenze specifiche di localizzazione interoperabile e di tecnologia geospaziale, compresi i GIS. Ulteriori informazioni sono disponibili sul sito https://www.ogc.org/.

Importanti specifiche OGC supportate da QGIS sono:

I servizi OGC sempre più numerosi sono utili per scambiare dati geografici fra differenti implementazioni GIS e archivi di dati. QGIS può gestire le specifiche sopra esposte come client, essendo SFS (tramite il supporto a PostgreSQL/PostGIS, vedi sezione Layer PostGIS).

Puoi anche condividere le tue mappe e i tuoi dati attraverso i protocolli WMS, WMTS, WFS, WFS-T e WCS usando un webserver con QGIS Server, UMN MapServer o GeoServer installati.

22.1. Client WMS/WMTS

22.1.1. Panoramica sul servizio WMS

QGIS può agire come client WMS, nel rispetto delle specifiche server 1.1, 1.1.1 e 1.3. In particolare è stato testato nei confronti di server accessibili pubblicamente quali DEMIS.

Un server WMS risponde alle richieste da parte del client (ad esempio QGIS) di una mappa raster di una determinata estensione, con un determinato insieme di layer, simboli e trasparenze. Il server WMS quindi consulta le sue risorse locali, genera il raster e lo invia al client in formato raster. Per QGIS tipicamente come immagini JPEG o PNG.

WMS è un servizio REST (Representational State Transfer) piuttosto che un servizio web completo. Quindi puoi prendere l’URL generato da QGIS e usarlo in un browser web per ottenere la stessa immagine che QGIS usa internamente. Questo è utile per identificare le cause di eventuali problemi, dato che esistono vari tipi di server WMS e ciascuno ha la sua propria interpretazione degli standard WMS.

I layer WMS possono essere aggiunti molto semplicemente, una volta disponibile l’indirizzo (URL) per accedere al server WMS, una connessione adatta e posto che il server usi HTTP come meccanismo di trasferimento dati.

Inoltre, QGIS memorizzerà nella cache le risposte WMS (ad esempio le immagini) per 24 ore finché non viene attivata la richiesta GetCapabilities. La richiesta GetCapabilities viene attivata ogni volta che il pulsante Connetti nella finestra di dialogo WMS/WMTS viene utilizzato per recuperare le capacità del server WMS. Si tratta di una funzione automatica volta a ottimizzare i tempi di caricamento dei progetti. Se un progetto viene salvato con un layer WMS, le tessere WMS corrispondenti verranno caricate dalla cache alla successiva apertura del progetto, purché non siano più vecchie di 24 ore.

22.1.2. Panoramica sul servizio WMTS

QGIS può agire anche come client WMTS. WMTS è uno standard OGC che distribuisce insiemi di tasselli di dati geospaziali. È un modo più efficace e veloce rispetto a WMS perché gli insiemi di tasselli vengono già generati e il client deve solamente richiedere la trasmissione di questi tasselli e non la loro produzione. Una richiesta WMS tipicamente richiede sia la generazione che la trasmissione dei dati. Un esempio molto conosciuto di standard non-OGC è Google Maps.

Per visualizzare i dati a diverse scale, l’insieme dei tasselli WMTS vengono prodotti con scale molto differenti fra loro in modo che per il client GIS sia più facile effettuare la richiesta.

Questo diagramma mostra il concetto dei tasselli:

../../../_images/concept_wmts.png

Fig. 22.1 Concetto dell’insieme dei tasselli WMTS

Le due tipologie di interfacce WMTS che supporta QGIS sono via Key-Value-Pairs (KVP) e RESTful. Queste due interfacce sono differenti e devi specificarle in QGIS.

  1. Per accedere a un servizio WMTS KVP, un utente QGIS deve aprire l’interfaccia WMS/WMTS e aggiungere la seguente stringa all” URL del servizio di tasselli WMTS:

    "?SERVICE=WMTS&REQUEST=GetCapabilities"
    

    Un esempio di tale tipologia di indirizzo è il seguente:

    https://opencache.statkart.no/gatekeeper/gk/gk.open_wmts?service=WMTS&request=GetCapabilities
    

    Per vedere se il layer topo2 funziona correttamente in questo WMTS, aggiungi la stringa indicata che il servizio WMTS deve usare al posto del servizio WMS.

  2. Il servizio RESTful WMTS segue un modulo diverso, ovvero un URL diretto. Il formato raccomandato da OGC è:

    {WMTSBaseURL}/1.0.0/WMTSCapabilities.xml
    

    Questo formato ti permette di riconoscere che si tratta di un indirizzo RESTful. Per accedere a un WMTS RESTful in QGIS è sufficiente aggiungere il suo indirizzo nella configurazione WMS nel campo URL del modulo. Un esempio di questo tipo di indirizzo per il caso di una mappa di base austriaca è:

    https://maps.wien.gv.at/basemap/1.0.0/WMTSCapabilities.xml
    

Nota

Puoi ancora trovare alcuni vecchi servizi chiamati WMS-C. Questi servizi sono abbastanza simili al WMTS (cioè, stesso scopo ma funzionando un po” diversamente). Puoi gestirli come fai con i servizi WMTS. Basta aggiungere ?tiled=true alla fine dell’url. Vedi https://wiki.osgeo.org/wiki/Tile_Map_Service_Service_Specification per ulteriori informazioni su questa specifica.

Quando leggi WMTS, puoi anche pensare a WMS-C.

22.1.3. Selezionare server WMS/WMTS

La prima volta che utilizzi WMS/WMTS in QGIS, non ci sono server definiti.

Devi poi creare le connessioni al server che stai scegliendo:

  1. Vai alla scheda wms WMS/WMTS della finestra di dialogo Apri Gestore delle sorgenti dati, oppure:

    • cliccando sul pulsante dataSourceManager Apri Gestore delle Sorgenti Dati (o premendo Ctrl+L) e abilitando la scheda

    • cliccando sul pulsante addWmsLayer Aggiungi Layer WMS/WMTS sulla barra degli strumenti Barra di Gestione dei Layer

    • o selezionando Layer ► Aggiungi Layer ► addWmsLayer Aggiungi Layer WMS/WMTS… menu

  2. Premi Nuovo dalla scheda Layer. Appare la finestra di dialogo Crea una nuova WMS/WMTS Connessione….

    Suggerimento

    Fai clic con il tasto destro del mouse sulla voce wms WMS/WMTS all’interno del Browser panel e seleziona Nuovo si apre anche la finestra di dialogo Crea una Nuova WMS/WMTS Connessione.

  3. Poi inserisci i parametri per connetterti al tuo server WMS scelto, come elencato di seguito:

    ../../../_images/add_connection_wms.png

    Fig. 22.2 Creare una connessione a un server WMS

    • Nome: Un nome per la connessione. Questo nome sarà usato nella casella a discesa Connessioni server in modo da poterlo distinguere da altri server WMS.

    • URL: URL del server che fornisce i dati. Questo deve essere un nome di host risolvibile – lo stesso formato che useresti per aprire una connessione telnet o fare il ping di un host, cioè solo l’URL di base. Per esempio, non dovresti avere frammenti come request=GetCapabilities o version=1.0.0 nel tuo URL.

    • Autenticazione (opzionale): usando una stored configuration o un’autenticazione di Base con Nome Utente e Password.

      Avvertimento

      Inserendo Nome utente e Password nella scheda Autenticazione, le credenziali non sono protette nella configurazione della connessione. Queste credenziali saranno visibili se, per esempio, hai condiviso il file del progetto con qualcuno. Pertanto, è consigliabile invece salvare le tue credenziali in una Configurazione di autenticazione (scheda Configurazioni). Vedi Sistema di Autenticazione per maggiori dettagli.

    • HTTP Riferimento

    • DPI-Mode: Le opzioni disponibili sono tutto, disattivo, QGIS, UMN e GeoServer.

    • unchecked Ignora la URI di GetMap/GetTile/GetLegendGraphic riportata nelle capabilities: se selezionata, usa la URI data dal campo URL di cui sopra.

    • unchecked Ignora la URI GetFeatureInfo riportata nelle capability: se selezionata, usa la URI data dal campo URL sopra.

    • unchecked Ignora orientamento assi (WMS 1.3/WMTS)

    • unchecked Ignora estensioni riportate dei layer: poiché l’estensione riportata dai layer raster può essere più piccola dell’area effettiva che può essere visualizzata (in particolare per i server WMS con simbologia che occupa più spazio dell’estensione dei dati), seleziona questa opzione per evitare di tagliare i layer raster alle loro estensioni riportate, con il risultato di simboli troncati sui bordi di questi layer.

    • unchecked Inverti l’orientamento degli assi

    • unchecked Trasformazione con allisciamento

  4. Premi OK

Una volta creata la nuova connessione al server WMS/WMTS, questa verrà conservata per le sessioni future di QGIS.

Se hai bisogno di impostare un server proxy per poter ricevere i servizi WMS da internet, puoi aggiungere il tuo server proxy nelle opzioni. Scegli Impostazioni ► Opzioni e clicca sulla scheda Rete. Lì puoi aggiungere le tue impostazioni proxy e abilitarle impostando la casella di controllo Usa proxy per accesso al web. Assicurati di selezionare il tipo di proxy corretto dal menu a tendina Tipo Proxy selectString.

22.1.4. Caricare layer WMS/WMTS

Una volta che hai riempito con successo i tuoi parametri, puoi usare il pulsante Connetti per recuperare le capabilities del server selezionato. Questo include la codifica dell’immagine, i layer, gli stili di layer e le proiezioni. Poiché questa è un’operazione di rete, la velocità della risposta dipende dalla qualità della tua connessione di rete al server WMS. Durante il download dei dati dal server WMS, il progresso del download viene visualizzato nell’angolo in basso a sinistra della finestra di dialogo principale di QGIS.

Il tuo schermo dovrebbe ora assomigliare un pò a Fig. 22.3, che mostra la risposta fornita da un server WMS.

../../../_images/connection_wms.png

Fig. 22.3 Finestra di dialogo per aggiungere un server WMS, con filtro sui layer disponibili

La parte superiore della finestra di dialogo della scheda Layer mostra una struttura ad albero che può includere gruppi di layer che incorporano i layer con i loro stili di immagine associati forniti dal server. Ogni elemento può essere identificato da:

  • un ID

  • un Nome

  • un Titolo

  • e un Riassunto.

La lista può essere filtrata usando il widget search nell’angolo in alto a destra.

Codifica immagine

La sezione Codifica immagine elenca i formati supportati sia dal client che dal server. La scelta è in funzione dei requisiti di accuratezza.

Suggerimento

Codifica immagine

Un server WMS offre normalmente la scelta fra immagini JPEG o PNG. Il formato JPEG è un formato di compressione lossy, mentre il formato PNG riproduce fedelmente i dati raster.

È meglio usare il formato JPEG per dati di natura fotografica e/o se la perdita parziale di qualità dell’immagine non causa problemi. Questa scelta riduce normalmente di cinque volte il volume di dati trasferiti rispetto al formato PNG.

L’uso del formato PNG permette una visualizzazione più precisa ed è da usare se non ci sono problemi per l’incremento dei dati trasferiti.

Opzioni

L’area Opzioni della finestra di dialogo fornisce i mezzi per configurare le richieste WMS. Puoi definire:

  • Dimensione tassello se vuoi impostare le dimensioni dei tasselli (ad esempio, 256x256) per suddividere la richiesta WMS in più richieste.

  • Dimensione step: se si vuole ridurre l’effetto delle etichette tagliate ai bordi dei tasselli, aumentando la dimensione del passo si creano tasselli più grandi, meno tasselli e meno bordi. Il valore predefinito è 2000.

  • Il Numero massimo di risultati GetFeatureInfo dal server

  • Ogni layer WMS può essere presentato in più SR, a seconda della funzionalità del server WMS. Se selezioni un WMS dall’elenco, appare un campo con la proiezione predefinita fornita dal server web. Premi il widget setProjection Seleziona SR per sostituire la proiezione predefinita del WMS con un altro SR supportato dal server WMS.

    Verrà visualizzata una finestra di dialogo simile a quella mostrata in Fig. 10.3. La differenza principale con la versione WMS della finestra di dialogo è che verranno mostrati solo i SR supportati dal server WMS.

  • Infine puoi attivare checkbox Usa la legenda WMS contestuale se il server WMS supporta questa funzionalità. Allora sarà mostrata solo la legenda pertinente per la tua attuale estensione della mappa e quindi non includerà elementi della legenda per gli elementi che non puoi vedere nella mappa corrente.

In fondo alla finestra di dialogo, un campo di testo Nome layer mostra il Titolo dell’elemento selezionato. Puoi cambiare il nome a tuo piacimento. Questo nome apparirà nel pannello Layer dopo aver premuto il pulsante Aggiungi e caricato il layer (o i layer) in QGIS.

Puoi selezionare più layer contemporaneamente, ma solo uno stile di immagine per layer. Quando si selezionano più layer, questi vengono combinati sul server WMS e trasmessi a QGIS in un’unica soluzione, come un singolo layer. Il nome predefinito è un elenco di titoli originali separati da una barra (/). Puoi comunque scegliere di selezionare la casella di controllo Carica come layer separati.

Ordine dei Layer

La scheda Ordine Layer elenca i layer selezionati disponibili dal server WMS correntemente connesso.

I layer WMS che vengono visualizzati da un server sono sovrapposti nell’ordine elencato nella scheda Layer, dall’alto verso il basso dell’elenco. Se vuoi cambiare l’ordine di sovrapposizione, puoi usare i pulsanti e Giù della scheda Ordine Layer.

Trasparenza

L’impostazione Opacità globale di Proprietà layer è impostata in modo da essere sempre attiva, se disponibile.

22.1.5. Impostazioni tasselli

Quando utilizzi i servizi WMTS (Cached WMS) puoi sfogliare la scheda Opzioni fornita dal server. In questa tabella sono elencate informazioni aggiuntive come le dimensione tassello, i formati e i SR supportati.

# example of WMTS service

https://opencache.statkart.no/gatekeeper/gk/gk.open_wmts?service=WMTS&request=GetCapabilities

Selezionando un layer da caricare, è anche possibile applicare un Interpretation method, convertendolo in un layer raster di tipo float a banda singola, pronto per essere stilizzato usando i consueti Renderer raster di QGIS.

In combinazione con questa funzione, puoi utilizzare il cursore di scala dei tasselli selezionando :menuselection: Visualizza –> Pannelli (o kde Impostazioni ► Pannelli), quindi scegliendo Scala Tassello. In questo modo si ottengono le scale disponibili dal server dei tasselli con un comodo cursore agganciato.

22.1.6. Uso dello strumento di identificazione

Dopo aver aggiunto un server WMS, e se sul server WMS è possibile eseguire query su qualsiasi layer, puoi utilizzare lo strumento identify Informazione elementi per selezionare un pixel sulla mappa. Viene eseguita una query sul server WMS per ogni selezione effettuata. I risultati della query vengono restituiti in formato testo. La formattazione di questo testo dipende dal particolare WMS server utilizzato.

Selezione formato

Se il server supporta diversi formati in output, un menu a tendina verrà automaticamente aggiunto alla finestra delle informazioni risultati in modo che i diversi formati possano essere memorizzati nel progetto.

Supporto formato GML

Lo strumento identify Informazione elementi supporta anche le risposte WMS (GetFeatureInfo) in formato GML (in questo contesto è chiamato Geometria nell’interfaccia di QGIS). Se il formato “Geometria” è supportato dal server, i risultati dello strumento ‘Informazione elementi’ sono geometrie proprio come un layer vettore. Quando selezioni una singola geometria nell’albero, questa viene evidenziata sulla mappa e la puoi copiare negli appunti e incollare su un altro layer vettore. Vedi l’esempio UMN Mapserver per il supporto GetFeatureInfo in formato GML.

# in layer METADATA add which fields should be included and define geometry (example):

"gml_include_items"   "all"
"ows_geometries"      "mygeom"
"ows_mygeom_type"     "polygon"

# Then there are two possibilities/formats available, see a) and b):

# a) basic (output is generated by Mapserver and does not contain XSD)
# in WEB METADATA define formats (example):
"wms_getfeatureinfo_formatlist" "application/vnd.ogc.gml,text/html"

# b) using OGR (output is generated by OGR, it is sent as multipart and contains XSD)
# in MAP define OUTPUTFORMAT (example):
OUTPUTFORMAT
    NAME "OGRGML"
    MIMETYPE "ogr/gml"
    DRIVER "OGR/GML"
    FORMATOPTION "FORM=multipart"
END

# in WEB METADATA define formats (example):
"wms_getfeatureinfo_formatlist" "OGRGML,text/html"

22.1.7. Visualizzazione Proprietà

Una volta aggiunto un server WMS, puoi visualizzarne le proprietà facendo clic con il pulsante destro del mouse su di esso nella legenda e selezionando Proprietà…. Le proprietà dei layer WMS/WMTS sono molto simili a quelle dei layer raster, per cui se ne trova una descrizione dettagliata in Finestra di dialogo Proprietà raster. Tuttavia, ci sono alcune differenze che verranno spiegate di seguito.

22.1.7.1. Informazioni proprietà

Scheda Metadati

La scheda Metadata mostra molte informazioni sul server WMS, generalmente fornite dalle capabilities restituite da quel server. Molte definizioni possono essere ricavate leggendo gli standard WMS (vedi OPEN-GEOSPATIAL-CONSORTIUM in Letteratura e riferimenti web), ma qui sono riportate alcune utili definizioni:

  • Proprietà del server

    • Versione WMS — La versione WMS supportata dal server.

    • Formati immagine - L’elenco dei tipi MIME disponibili sul server durante la visualizzazione della mappa. QGIS permette l’uso di qualunque formato supportato dalle librerie Qt, solitamente sono image/png ed image/jpeg.

    • Interroga formati - L’elenco dei tipi MIME con i quali il server può fornire risposta quando usi lo strumento Informazioni elementi. Attualmente QGIS supporta il tipo text-plain.

  • Proprietà layer

    • Selezionato — Indica se il layer era selezionato quando il server è stato aggiunto al progetto.

    • Visibilità - Indica se il layer è stato impostato come visibile in legenda. (funzione non ancora utilizzata in questa versione di QGIS).

    • Può interrogare —Indica se il layer fornisce o meno informazioni se si usa lo strumento Informazioni elementi.

    • Può essere trasparente - Indica se il layer può essere o meno reso trasparente. Questa versione di QGIS userà sempre la trasparenza se questa è e se il formato immagine la supporta.

    • Può ingrandire- Indica se il layer può essere ingrandito dal server. Questa versione di QGIS assume in modo predefinito che tutti i layer WMS abbiano questa impostazione su Si. I layer senza questa impostazione potrebbero essere visualizzati in modo anomalo.

    • Conteggio a cascata — I server WMS possono fungere da proxy per altri server WMS dai quali ottengono i dati raster per un certo layer. La voce mostra quindi quante richieste per questo layer vengono inoltrate ai nodi per ottenere un risultato.

    • Larghezza fissa, Altezza fissa - Indica se questo layer ha una dimensione fissa dei pixel. In questa versione di QGIS tutti i layer WMS hanno questa impostazione impostata su nulla. I layer con impostazioni diverse potrebbero essere visualizzati in modo anomalo.

    • Perimetro WGS 84 - Il riquadro di delimitazione in coordinate WGS84. Alcuni server WMS non impostano questo parametro correttamente (ad es. usano coordinate UTM invece di WGS84). In questo caso sembrerà che la vista iniziale del layer sia ad uno zoom molto ridotto. Bisognerebbe informare di questi errori il webmaster del server WMS, che potrebbe conoscere come elementi WMS XML LatLonBoundingBox, EX_GeographicBoundingBox o CRS:84 BoundingBox.

    • Disponibilità in SR — Sistemi di riferimento nel quale il layer può essere rappresentato dal server WMS, elencati nel formato nativo WMS.

    • Disponibile in stile — Stili visuali applicabili al layer dal server WMS.

22.1.7.2. Proprietà temporali

Raster temporal properties (cioè Controllo Temporale Dinamico) può essere impostato per i layer WMS e WMTS. Per impostazione predefinita, quando un layer WMS o WMTS abilitato alla dimensione temporale viene aggiunto al progetto, viene indicato nel pannello Layer con l’icona indicatorTemporal Layer Temporale accanto. Le sue proprietà :guilabel: Temporali sono predefinite alla modalità temporale :guilabel: Automatica, il che significa che il layer seguirà per impostazione predefinita l’intervallo di tempo corrente del controllore temporale.

Puoi quindi scegliere di mostrare un valore temporale statico specifico per il layer, deselezionando Controllo Temporale Dinamico e scegliendo un’opzione sotto Intervallo Temporale WMS-T Statico:

  • Server default

  • Data predefinita con un server che espone dati per intervalli temporali non contigui o Ambito predefinito con un server che espone un intervallo di date disponibili. In quest’ultimo caso sono necessari Data iniziale e Data finale. La loro formattazione prevista può essere dedotta dall’opzione dell’ora di riferimento (vedere sotto). a seconda che il provider disponga o meno di dati per un periodo contiguo.

  • Follow project’s temporal range as defined in the project’s properties dialog

../../../_images/temporal_properties.png

Fig. 22.4 Proprietà temporali di un layer WMTS

Qualunque sia il controllo dei dati temporali in uso, esistono alcune Impostazioni WMS-T per aiutare a visualizzare i dati temporali corretti:

  • Modalità fetta di tempo che può essere:

    • Utilizza l’intero intervallo temporale

    • Fai corrispondere all’inizio dell’intervallo

    • Fai corrispondere alla fine dell’intervallo

    • Closest match to start of range

    • Closest match to end of range

  • Ignora le informazioni temporali (usa solo le date): Se selezionata, la componente temporale delle query temporali sarà scartata e nelle richieste al server sarà usata solo la componente data.

Puoi anche checkbox Utilizzare l’ora di riferimento WMS-T specifica scelta tra le ore riportate nelle opzioni del layer. Comodo per i server che espongono un insieme non contiguo di istanze di data e ora (invece di un intervallo di date).

22.1.7.3. Proprietà Server QGIS

Oltre al layer raster properties, la pubblicazione di un layer WMS/WMTS con QGIS Server mostrerà le seguenti opzioni:

  • WMS Print layer: Permette di impostare un layer WMS alternativo da utilizzare per la stampa (nella risposta GetProjectSettings). Comodo per i layer WMTS che generalmente non sono adatti alla stampa.

  • checkbox Publish WMS/WMTS data source uri: Consente a un client web di scaricare direttamente i dati WMS/WMTS.

  • checkbox Pubblica come layer di sfondo

../../../_images/server_properties.png

Fig. 22.5 Proprietà Server QGIS di un layer WMS/WMTS

22.1.8. Mostra la legenda WMS nella lista dei layer e nel layout

La sorgente dati WMS di QGIS può visualizzare la legenda nella lista dei layer e nel layout di stampa. La legenda WMS verrà mostrata solo se il server WMS ha le capability GetLegendGraphic e se il layer ha l’url getCapability specificato. Potrai anche selezionare uno stile per il layer.

Se legendGraphic è disponibile, viene mostrato sotto il layer. È piuttosto piccolo e dovrai cliccarci sopra per aprirlo nelle dimensioni reali (fatto dovuto alle limitazioni QgsLegendInterface). Cliccando sulla legenda del layer si aprirà una finestra con la legenda alla massima risoluzione.

Nel layout di stampa, la legenda verrà integrata nella sua dimensione originale (scaricata). La risoluzione grafica della legenda può essere impostata nelle proprietà dell’elemento in Legenda -> WMS LegendGraphic in base alle tue esigenze di stampa.

La legenda mostrerà informazioni contestuali riferite alla scala attuale. La legenda WMS verrà mostrata solo se il server WMS ha le capability GetLegendGraphic e se il layer ha le capability dell’url getCapability specificate, cosi puoi anche scegliere uno stile per il layer.

22.2. Client WCS

wcs Un servizio WCS fornisce accesso a dati raster che sono utili per la visualizzazione lato client, come input per modelli scientifici e per molti altri usi. Quali sono le caratteristiche che distinguono un servizio WCS dai servizi WFS e WMS? Mentre i servizi WFS e WMS sono istanze server, il servizio WCS permette al client di scegliere le porzioni di server che contengono le informazioni desiderate. Queste informazioni possono essere filtrate attraverso limiti spaziali o altre tipologie di interrogazioni.

QGIS ha un servizio WCS nativo e supporta le versioni 1.0 e 1.1 (che sono molto diverse fra di loro), ma attualmente preferisce la versione 1.0, perché la 1.1 ha ancora troppi problemi (ad esempio ogni server lo implementa in modo diverso con differenti particolarità).

Il supporto nativo WCS si occupa di tutte le richieste di rete e usa tutte le impostazioni standard di QGIS (specialmente i proxy). Puoi anche scegliere la modalità cache (‘sempre cache’, ‘preferisci cache’, ‘preferisci rete’, ‘sempre rete’) e la fonte dati supporta anche la posizione temporale se questa è disponibile dal server.

Avvertimento

Inserendo nome utente e password nella scheda Autenticazione, le credenziali non sono protette nella configurazione della connessione. Queste credenziali saranno visibili se, per esempio, hai condiviso il file del progetto con qualcuno. Pertanto, è invece consigliabile salvare le credenziali in una Configurazione di autenticazione (tabella configurazioni). Vedi Sistema di Autenticazione per maggiori dettagli.

22.3. Client WFS e WFS-T

In QGIS, un layer WFS si comporta come qualsiasi altro layer vettoriale. Puoi identificare e selezionare le caratteristiche e visualizzare la tabella degli attributi. QGIS supporta WFS 1.0.0, 1.1.0, 2.0 e OGC API - Features (OAPIF), compresa la modifica (tramite WFS-T). QGIS supporta anche il download in background e la visualizzaione progressiva, la cache su disco degli elementi scaricati e il rilevamento automatico della versione.

In generale, aggiungere un layer WFS è molto simile alla procedura usata con WMS. Non ci sono server predefiniti, quindi devi aggiungere i tuoi. Puoi trovare i server WFS usando il plugin MetaSearch o il tuo motore di ricerca web preferito. Ci sono un certo numero di liste con URL pubblici, alcune mantenute e altre no.

Caricare un layer WFS

A titolo di esempio, utilizziamo il server WFS di Gateway Geomatics e visualizziamo un layer.

https://demo.gatewaygeomatics.com/cgi-bin/wfs_gateway?REQUEST=GetCapabilities&VERSION=1.0.0&SERVICE=WFS

Per poter caricare un Layer WFS, crea prima una connessione al server WFS:

  1. Apri la finestra di dialogo Data Source Manager premendo il pulsante dataSourceManager Apri Gestore delle Sorgenti Dati

  2. Attiva la scheda addWfsLayer :guilabel:`WFS/OGC API-Features

  3. Fai clic su Nuovo per aprire la finestra di dialogo Crea una nuova connessione WFS.

  4. Inserisci Gateway Geomatics come nome

  5. Immetti l’URL (vedi sopra)

    ../../../_images/add_connection_wfs.png

    Fig. 22.6 Creazione di una connessione a server WFS

    Nota

    Nel caso di una OGC API - Features (OAPIF), l’URL da fornire dovrebbe essere il landing page, cioè la pagina principale da cui è possibile navigare verso tutti gli endpoint di servizio disponibili.

  6. Nella finestra di dialogo impostazioni WFS puoi:

    • Indicare la versione WFS del server. Se sconosciuto, premi il pulsante Rileva per recuperarlo automaticamente.

    • Definire il Numero max. di elementi recuperate in una singola richiesta GetFetFeature. Se vuoto, non viene impostato alcun limite.

    • E, a seconda della versione di WFS, indica se:

      • Abilita paginazione elemento e specifica il numero massimo di geometrie da recuperare con Dimensione pagina. Se non viene definito alcun limite, viene applicato il valore predefinito del server.

      • Forza a Ignora orientamento assi (WFS 1.1/WFS 2.0)

      • Inverti orientamento assi.

      • Usa la codifica GML2 per le transazioni.

    Avvertimento

    Inserendo Nome utente e Password nella scheda Autenticazione, le credenziali non sono protette nella configurazione della connessione. Queste credenziali saranno visibili se, per esempio, hai condiviso il file del progetto con qualcuno. Pertanto, è consigliabile invece salvare le tue credenziali in una Configurazione di autenticazione (scheda Configurazioni). Vedi Sistema di Autenticazione per maggiori dettagli.

  7. Premi OK per creare la connessione.

Ogni impostazione proxy presente nelle preferenze viene automaticamente riconosciuta.

Ora siamo pronti a caricare i layer WFS dalla connessione di cui sopra.

  1. Scegli «Gateway Geomatics» dall’elenco a discesa Connessioni server.

  2. Clicca Connetti

  3. Seleziona il layer Parks nella lista

  4. Puoi scegliere se fare o meno:

    • unchecked Usa il titolo come nome del layer, mostrando il titolo dello strato come definito sul server nel pannello Layer al posto del suo Nome

    • checkbox Solo le geometrie sovrapposte all’estensione della vista

    • Cambia… il SR del layer con qualsiasi altro supportato dal servizio.

    • o costruisci una query per specificare particolari elementi da recuperare dal servizio: fai doppio clic sulla riga del layer per aprire la finestra di dialogo :guilabel: Compositore interrogazioni SQL. Questa finestra di dialogo fornisce widget per scrivere una query SQL avanzata basandosi sulle tabelle e sulle colonne disponibili del servizio, con ordinamento e filtraggio e una serie di funzioni SQL, predicati spaziali e operatori.

      La query che hai costruito apparirà dopo la convalida nella colonna SQL all’interno della tabella WFS / OGC API - Features e il layer filtrato mostrerà l’icona indicatorFilter accanto ad esso nel pannello Layer. È quindi possibile modificare la query in qualsiasi momento.

  5. Clicca Aggiungi per aggiungere il layer alla mappa.

../../../_images/connection_wfs.png

Fig. 22.7 Aggiungere un layer WFS

Noterai che l’avanzamento del download viene visualizzato in basso a sinistra della finestra principale di QGIS. Una volta caricato il layer, puoi identificare e selezionare un paio di elementi e visualizzare la tabella degli attributi.