10.2. Lesson: Web Feature Services
Un Web Feature Service (WFS) fornisce ai suoi utenti dati GIS in formati che possono essere caricati direttamente in QGIS. A differenza di un WMS, che fornisce solo una mappa che non può essere modificata, un WFS dà accesso agli elementi stessi.
Obiettivo di questa lezione: Utilizzare un WFS e capire come si differenzia da un WMS.
10.2.1. Follow Along: Caricare un Layer WFS
Avvia una nuova mappa. Questa è a scopo dimostrativo e non verrà salvata.
Fai clic sul pulsante :guilabel: Nuovo.
Nella finestra di dialogo che appare, inserisci Nome come
nsidc.org
e URL comehttps://nsidc.org/cgi-bin/atlas_south?version=1.1.0
.Fai clic su OK e la nuova connessione apparirà nella tua Connessioni Server.
Fai clic su Connetti. Verrà visualizzato un elenco dei layer disponibili:
Deseleziona l’opzione Solo le geometria sovrapposte all’estensione della vista sotto l’elenco dei layer, poiché la tua mappa attuale potrebbe non coprire l’area di interesse: Antartide.
Trova il layer antarctica_country_border. Puoi utilizzare la casella Filtro in alto.
Fai clic sul layer per selezionarlo:
Trova e seleziona anche il layer south_poles_wfs. Potresti aver bisogno di tenere premuto Ctrl.
Fai clic su Aggiungi.
Il caricamento dei layer potrebbe richiedere un po” di tempo. Una volta caricati, appariranno nella mappa, mostrando i contorni dell’Antartide e alcuni punti sovrastanti.
In che modo questo è diverso dall’avere un layer WMS?
Seleziona uno qualsiasi dei layer e noterai che gli strumenti di selezione degli elementi e di tabella degli attributi sono abilitati. Si tratta di layer vettoriali.
Seleziona il layer south_poles_wfs e apri la tabella degli attributi. Dovresti vedere questo:
Dal momento che i punti hanno degli attributi, siamo in grado di etichettarli e di modificarne la simbologia. Ecco un esempio:
Differenze rispetto ai layer WMS
Un Web Feature Service restituisce il layer stesso, non solo una mappa visualizzata su di esso. Ciò ti consente di accedere direttamente ai dati, modificandone la simbologia ed eseguendo funzioni di analisi. Tuttavia, ciò comporta la trasmissione di molti più dati. Questo è particolarmente evidente se i layer che stai caricando hanno forme complicate, molti attributi o molte elementi; o anche se si stanno caricando molti layer. Il caricamento dei layer WFS richiede in genere tempi molto lunghi.
10.2.2. Follow Along: Interrogare un layer WFS
Sebbene sia possibile interrogare un layer WFS dopo averlo caricato, spesso è più efficiente interrogarlo prima di caricarlo. In questo modo, si richiedono solo le funzionalità desiderate e si utilizza molta meno larghezza di banda.
Ad esempio, sul server WFS che stiamo usando, c’è un layer chiamato countries (excluding Antarctica). Supponiamo di voler sapere dove si trova il Sudafrica rispetto al layer south_poles_wfs (e forse anche al layer antarctica_country_border) che è già stato caricato.
Ci sono due modi per farlo. Puoi caricare l’intero layer countries … e poi costruire una query come al solito una volta caricato. Tuttavia, trasmettere i dati di tutti i paesi del mondo e poi usare solo quelli del Sudafrica sembra un po” uno spreco di banda. A seconda della connessione, questo insieme di dati può richiedere diversi minuti per essere caricato.
L’alternativa è costruire la query come filtro prima ancora di caricare layer dal server.
Attiva la scheda WFS / OGC API Features nella finestra di dialogo Gestore delle Sorgenti Dati.
Connettiti al server usato in precedenza e dovresti vedere l’elenco dei layer disponibili.
Individua e fai doppio clic sul layer countries (excluding Antarctica). Il nome del layer è
country_borders_excluding_antarctica
. Puoi anche selezionare il layer e premere il pulsante Crea interrogazione in fondo alla finestra di dialogo:Nella finestra di dialogo visualizzata, digita la seguente query
SELECT * FROM country_borders_excluding_antarctica WHERE "Countryeng" = 'South Africa'
nella casella Istruzione SQL`.Fai clic su OK.
L’espressione utilizzata apparirà come valore Sql del layer di destinazione:
Fai clic su Aggiungi con il layer selezionato come sopra. Solo il paese con il valore
Countryeng
diSouth Africa
verrà caricato da quel layer:Hai notato l’icona accanto al layer
country_borders_excluding_antarctica
? Indica che il layer caricato è filtrato e non visualizza nel progetto tutti i suoi elementi.Non è obbligatorio, ma se hai provato entrambi i metodi, noterai che è molto più veloce che caricare tutti i paesi prima di filtrarli!
Note sulla disponibilità di WFS
È raro trovare un WFS che ospiti gli elementi di cui hai bisogno, se le esigenze sono molto specifiche. Il motivo per cui i Web Feature Services sono relativamente rari è la grande quantità di dati che devono essere trasmessi per descrivere un intero elemento. Pertanto, non è molto conveniente ospitare un WFS piuttosto che un WMS, che invia solo immagini.
Il tipo più comune di WFS che troverai sarà quindi probabilmente su una rete locale o sul tuo computer, piuttosto che su Internet.
10.2.3. In Conclusion
I layer WFS sono preferibili ai layer WMS se si ha bisogno di accedere direttamente agli attributi e alle geometrie dei layer. Tuttavia, considerando la quantità di dati da scaricare (che comporta problemi di velocità e la mancanza di server WFS pubblici facilmente disponibili), non è sempre possibile utilizzare un WFS al posto di un WMS.
10.2.4. What’s Next?
Successivamente, vedrai come utilizzare QGIS Server per fornire servizi OGC.