10.2. Lesson: Serviciile Web Feature

Un Serviciu Web Feature (WFS) pune la dispoziție utilizatorilor date GIS în formate care pot fi încărcate direct în QGIS. Spre deosebire de un WMS, care oferă doar o hartă pe care nu o puteți edita, un WFS oferă acces direct la entități.

Scopul acestei lecții: De a folosi un WFS și de a-i înțelege cum diferă de un WMS.

10.2.1. basic Follow Along: Încărcarea unui Strat WFS

  1. Începeți o nouă hartă. Aceasta are scop demonstrativ și nu va fi salvată.

  2. Click the dataSourceManager Open Data Source Manager button.

  3. Enable the wfs WFS / OGC API - Features tab.

  4. Clic pe butonul New.

  5. În caseta de dialog care apare, introduceți nsidc.org la Nume și https://nsidc.org/cgi-bin/atlas_south?version=1.1.0 la URL.

    ../../../_images/new_wfs_connection.png
  6. Clic OK, apoi noua conexiune va apărea în Conexiunile serverului.

  7. Clic pe Connect. Va apărea o listă a straturilor disponibile:

    ../../../_images/wfs_connection_layers.png
  8. Uncheck the Only request features overlapping the view extent option below the layers list, since your current map canvas may not cover our area of interest: Antarctica.

  9. Find the layer antarctica_country_border. You can use the Filter box at the top.

  10. Faceți clic pe strat pentru a-l selecta.

  11. Find and select also the layer south_poles_wfs. You might need to hold Ctrl.

    ../../../_images/south_poles_wfs.png
  12. Clic pe Add.

    It may take a while to load the layers. When they are loaded, they will appear in the map, showing the outlines of Antarctica and a few points over.

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

    How is this different from having a WMS layer?

  13. Select any of the layers and you’ll notice that feature selection and attribute table tools are enabled. These are vector layers.

  14. Select the south_poles_wfs layer and open its attribute table. You should see this:

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

    De vreme ce punctele au atribute, putem să le punem etichete și să le schimbăm simbolistica. Iată un exemplu:

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

Diferențe între straturile WMS

Un Serviciu Web Feature întoarce stratul însuși, nu doar o hartă redată pentru acesta. Asta vă dă acces direct la date, însemnând că puteți să schimbați simbologia și puteți rula funcții analitice. Cu toate acestea, costul este transmiterea unui volum mai mare de date. Asta va fi evident dacă straturile pe care le încărcați au forme complexe, multe atribute sau multe entități; sau chiar dacă doar încărcați multe straturi. Din această cauză straturile WFS au nevoie de regulă de mult timp pentru a se încărca.

10.2.2. moderate Follow Along: Interogarea unui Strat WFS

Deși este posibil să interogați un strat WFS după încărcare, este de regulă mai eficient să îl interogați înainte de a-l încărca. În felul acesta cereți doar entitățile pe care le doriți, ceea ce înseamnă că utilizați o bandă mai mică.

De exemplu, pe serverul WFS pe care îl utilizăm în acest moment, există un strat numit countries (excluding Antarctica). Să spunem că dorim să știm unde se află Africa de Sud față de stratul south_poles_wfs (și poate și față de antarctica_country_border layer) care a fost deja încărcat.

Există două metode. Puteți încărca tot stratul countries …, după care să construiți o interogare ca în mod normal după ce acesta s-a încărcat. Dar, transmițând datele pentru toate țările lumii și utilizând pe urmă doar datele pentru Africa de Sud pare a fi o irosire a lățimii de bandă. În funcție de conexiune, acest set de date poate necesita mai multe minute pentru a se încărca.

Alternativa este de a construi o interogare ca pe un filtru, chiar înainte de încărcarea stratului de pe server.

  1. Enable the WFS / OGC API Features tab in the Data Source Manager dialog

  2. Connect to the server we used before and you should see the list of available layers.

  3. Find and double-click the countries (excluding Antarctica) layer. The layer name is country_borders_excluding_antarctica. You can also select the layer and press Build query button at the bottom of the dialog:

    ../../../_images/select_country_filter.png
  4. In the dialog that appears, type the following SELECT * FROM country_borders_excluding_antarctica WHERE "Countryeng" = 'South Africa' query in the SQL Statement box.

    ../../../_images/country_sa_builder.png
  5. Press OK.

  6. The expression used will appear as the Sql value of the target layer:

    ../../../_images/country_filter_enabled.png
  7. Click Add with the layer selected as above. Only the country with the Countryeng value of South Africa will load from that layer:

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

    Did you notice the indicatorFilter icon next to the country_borders_excluding_antarctica layer? It indicates that the loaded layer is filtered and does not display in the project all of its features.

  8. Dacă ați încercat ambele metode, veți observa că această variantă este mult mai rapidă decât încărcarea tuturor țărilor înaintea filtrării!

Note cu privire la disponibilitatea WFS

Este o raritate să găsiți un WFS care să pună la dispoziție caracteristicile dorite dacă acestea sunt foarte specifice. Motivul pentru care cele mai multe servicii Web Feature sunt relativ rare este pentru că necesită transmiterea unui volum mare de date pentru a descrie complet o entitate. În concluzie nu este foarte rentabilă găzduirea unui WFS în comparație cu un WMS, care trimite doar imagini.

Cel mai comun tip de WFS pe care îl veți întâlni va fi deci probabil într-o rețea local sau chiar pe propriul calculator, mai degrabă decât in Internet.

10.2.3. In Conclusion

Straturile WFS sunt de preferat față de straturile WMS dacă aveți nevoie de acces direct la atributele si geometriile acestora. Cu toate acestea, ținând cont de volumul de date care trebuie descărcat (ceea ce duce la probleme de viteză și de asemenea la lipsa de servere WFS disponibile publicului larg) nu este întotdeauna posibil să folosiți un WFS în loc de un WMS.

10.2.4. What’s Next?

În continuare, vom vedea cum se utilizează QGIS Server pentru a furniza servicii OGC.