Viktigt
Översättning är en gemenskapsinsats du kan gå med i. Den här sidan är för närvarande översatt till 100.00%.
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.org
och 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.
Hitta lagret antarctica_country_border. Du kan använda rutan Filter högst upp.
Klicka på lagret för att markera det:
Hitta och välj även lagret south_poles_wfs. Du kan behöva hålla in 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.
Välj lagret south_poles_wfs och öppna dess attributtabell. Du bör se detta:
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.
På den WFS-server som vi använder för närvarande finns det till exempel ett lager som heter countries (excluding Antarctica). Låt oss säga att vi vill veta var Sydafrika ligger i förhållande till lagret south_poles_wfs (och kanske också lagret antarctica_country_border) som redan har laddats.
Det finns två sätt att göra detta på. Du kan ladda hela countries …-lagret och sedan bygga en fråga som vanligt när det har laddats. Men att överföra data för alla länder i världen och sedan bara använda data för Sydafrika verkar vara lite slöseri med bandbredd. Beroende på din anslutning kan det här datasetet ta flera minuter att ladda.
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.
Leta reda på och dubbelklicka på lagret countries (excluding Antarctica). Lagernamn är
country_borders_excluding_antarctica
. Du kan också välja lagret och trycka på knappen Build query längst ner i dialogrutan: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
Countryeng
värdetSouth Africa
kommer 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.