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

  1. Starta en ny karta. Detta är för demo-ändamål och kommer inte att sparas.

  2. Klicka på knappen dataSourceManager Open Data Source Manager.

  3. Aktivera fliken wfs WFS / OGC API - Funktioner.

  4. Klicka på knappen New.

  5. I dialogrutan som visas anger du Name som nsidc.org och URL som https://nsidc.org/cgi-bin/atlas_south?version=1.1.0.

    ../../../_images/new_wfs_connection.png
  6. Klicka på OK, och den nya anslutningen kommer att visas i din Serveranslutningar.

  7. Klicka på Connect. En lista över tillgängliga lager visas:

    ../../../_images/wfs_connection_layers.png
  8. 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.

  9. Hitta lagret antarctica_country_border. Du kan använda rutan Filter högst upp.

  10. Klicka på lagret för att markera det:

  11. Hitta och välj även lagret south_poles_wfs. Du kan behöva hålla in Ctrl.

    ../../../_images/south_poles_wfs.png
  12. 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.

    ../../../_images/antarctica_border.png

    Hur skiljer sig detta från att ha ett WMS-lager?

  13. Om du väljer något av lagren ser du att verktygen Feature Selection och Attribute Table är aktiverade. Det här är vektorlager.

  14. Välj lagret south_poles_wfs och öppna dess attributtabell. Du bör se detta:

    ../../../_images/poles_attribute_table.png

    Eftersom punkterna har attribut kan vi märka dem och även ändra deras symbologi. Här är ett exempel:

    ../../../_images/labelling_example.png

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.

  1. Aktivera fliken WFS / OGC API Features i dialogrutan Data Source Manager

  2. Anslut till den server som vi använde tidigare och du bör se listan över tillgängliga lager.

  3. 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:

    ../../../_images/select_country_filter.png
  4. I dialogrutan som visas skriver du följande SELECT * FROM country_borders_excluding_antarctica WHERE "Countryeng" = 'South Africa' fråga i rutan SQL Statement.

    ../../../_images/country_sa_builder.png
  5. Tryck på OK.

  6. Det uttryck som används visas som Sql-värdet för mållagret:

    ../../../_images/country_filter_enabled.png
  7. Klicka på Add med lagret valt enligt ovan. Endast landet med Countryeng värdet South Africa kommer att laddas från det lagret:

    ../../../_images/antarctica_sa.png

    La du märke till ikonen indicatorFilter bredvid lagret country_borders_excluding_antarctica? Den indikerar att det laddade lagret är filtrerat och inte visar alla dess funktioner i projektet.

  8. 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.