Viktigt
Översättning är en gemenskapsinsats du kan gå med i. Den här sidan är för närvarande översatt till 87.50%.
10.2. Lektion: Tjänster för webbfunktioner
En Web Feature Service (WFS) förser sina användare med GIS-data i format som kan läsas in direkt i QGIS. Till skillnad från en WMS, som bara ger dig en karta som du inte kan redigera, ger en WFS dig tillgång till själva funktionerna.
Målet för den här lektionen: Att använda en WFS och förstå hur den skiljer sig från ett WMS.
10.2.1. ★☆☆ Följ med: Ladda ett WFS-lager
Starta en ny karta. Detta är för demo-ändamål och kommer inte att sparas.
Klicka på knappen New.
I dialogrutan som visas anger du Name som
nsidc.orgoch URL somhttps://nsidc.org/cgi-bin/atlas_south?version=1.1.0.
Klicka på OK, och den nya anslutningen kommer att visas i din Serveranslutningar.
Klicka på Connect. En lista över tillgängliga lager visas:
Avmarkera alternativet Begär endast funktioner som överlappar visningsomfånget under lagerlistan, eftersom din nuvarande kartduk kanske inte täcker vårt intresseområde: Antarktis.
Find the layer
antarctica_country_border. You can use the Filter box at the top.Klicka på lagret för att markera det:
Find and select also the layer
south_poles_wfs. You might need to hold Ctrl.
Klicka på Add.
Det kan ta en stund att ladda lagren. När de har laddats visas de på kartan och visar konturerna av Antarktis och några punkter däröver.
Hur skiljer sig detta från att ha ett WMS-lager?
Om du väljer något av lagren ser du att verktygen Feature Selection och Attribute Table är aktiverade. Det här är vektorlager.
Select the
south_poles_wfslayer and open its attribute table. You should see this:
Eftersom punkterna har attribut kan vi märka dem och även ändra deras symbologi. Här är ett exempel:
Skillnader från WMS-lager
En Web Feature Service returnerar själva lagret, inte bara en karta som renderas från det. Detta ger dig direkt tillgång till data, vilket innebär att du kan ändra dess symbologi och köra analysfunktioner på den. Detta sker dock på bekostnad av att mycket mer data överförs. Detta blir särskilt tydligt om de lager du laddar har komplicerade former, många attribut eller många funktioner, eller till och med om du bara laddar många lager. WFS-lager tar vanligtvis mycket lång tid att ladda på grund av detta.
10.2.2. ★★☆ Följ med: Förfrågan om ett WFS-lager
Även om det är möjligt att fråga ett WFS-lager efter att det har laddats är det ofta mer effektivt att fråga det innan du laddar det. På så sätt begär du bara de funktioner du vill ha, vilket innebär att du använder mycket mindre bandbredd.
For example, on the WFS server we’re currently using, there is a layer called
countries (excluding Antarctica). Let’s say that we want to know
where South Africa is relative to the south_poles_wfs layer (and
perhaps also the antarctica_country_border layer) that’s already
been loaded.
There are two ways to do this. You can load the whole countries ...
layer, and then build a query as usual once it’s loaded. However, transmitting
the data for all the countries in the world and then only using the data for
South Africa seems a bit wasteful of bandwidth. Depending on your connection,
this dataset can take several minutes to load.
Alternativet är att bygga upp frågan som ett filter innan lagret laddas från servern.
Aktivera fliken WFS / OGC API Features i dialogrutan Data Source Manager
Anslut till den server som vi använde tidigare och du bör se listan över tillgängliga lager.
Find and double-click the
countries (excluding Antarctica)layer. The layer name iscountry_borders_excluding_antarctica. You can also select the layer and press Build query button at the bottom of the dialog:
I dialogrutan som visas skriver du följande
SELECT * FROM country_borders_excluding_antarctica WHERE "Countryeng" = 'South Africa'fråga i rutan SQL Statement.
Tryck på OK.
Det uttryck som används visas som Sql-värdet för mållagret:
Klicka på Add med lagret valt enligt ovan. Endast landet med
CountryengvärdetSouth Africakommer att laddas från det lagret:
La du märke till ikonen
bredvid lagret country_borders_excluding_antarctica? Den indikerar att det laddade lagret är filtrerat och inte visar alla dess funktioner i projektet.Du behöver inte göra det, men om du har provat båda metoderna kommer du att märka att det här går mycket snabbare än att ladda alla länder innan du filtrerar dem!
Anteckningar om WFS tillgänglighet
Det är sällsynt att hitta en WFS som är värd för de funktioner du behöver, om dina behov är mycket specifika. Anledningen till att Web Feature Services är relativt sällsynta är de stora mängder data som måste överföras för att beskriva en hel funktion. Det är därför inte särskilt kostnadseffektivt att vara värd för en WFS i stället för en WMS, som bara skickar bilder.
Den vanligaste typen av WFS som du stöter på kommer därför förmodligen att finnas i ett lokalt nätverk eller till och med på din egen dator, snarare än på Internet.
10.2.3. Sammanfattningsvis
WFS-lager är att föredra framför WMS-lager om du behöver direktåtkomst till lagrens attribut och geometrier. Med tanke på den mängd data som måste laddas ner (vilket leder till hastighetsproblem och även brist på lättillgängliga offentliga WFS-servrar) är det dock inte alltid möjligt att använda en WFS istället för en WMS.
10.2.4. Vad händer härnäst?
Därefter får du se hur du använder QGIS Server för att tillhandahålla OGC-tjänster.
