10.2. Lesson: Web Feature Services

Un Web Feature Services (WFS) proporciona a sus usuarios datos SIG en formatos que pueden ser cargados directamente en QGIS. No como WMS, que te proporciona solo un mapa que no puedes editar, un WFS te dá acceso a los propios elementos.

El objetivo de esta lección: Utilizar WFS y entender sus diferencias respecto a WMS.

10.2.1. básico Follow Along: Cargar una Capa WFS

  1. Comienza un mapa nuevo. Este es para fines de demostración y no será guardado.

  2. Click the dataSourceManager Open Data Source Manager button.

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

  4. Haz clic en el botón Nuevo

  5. Na caixa de diálogo mostrada, digite Nome como nsidc.org e URL como https://nsidc.org/cgi-bin/atlas_south?version=1.1 .0.

    ../../../_images/new_wfs_connection.png
  6. Haz clic en Aceptar, y la nueva conexión aparecerá en tu Conexiones de servidor.

  7. Haz clic en Conectar. Una lista de las capas disponibles aparecerá:

    ../../../_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. Haz clic en la capa para seleccionarla:

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

    ../../../_images/south_poles_wfs.png
  12. Haz clic en Añadir.

    Pode demorar um pouco para carregar as camadas. Quando estiverem carregadas, elas aparecerão no mapa, mostrando os contornos da Antártida e alguns pontos adiante.

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

    Como isso é diferente de ter uma camada WMS?

  13. Selecione qualquer uma das camadas e você notará que as ferramentas de seleção de feição e tabela de atributos estão habilitadas. Estas são camadas vetoriais.

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

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

    Como los puntos tienen atributos, podemos etiquetarlos, además de cambiar su simbología. Aquí tienes un ejemplo:

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

Diferencias con capas WMS

Uma Web Feature Service retorna a própria camada, e não apenas um mapa renderizado a partir dele. Isto dá-lhe acesso direto aos dados, o que significa que você pode mudar sua simbologia e execute funções de análise sobre ele. No entanto, isto é à custa de muito mais dados a serem transmitidos. Isto será particularmente evidente se as camadas que você está carregando têm formas complicadas, um monte de atributos, ou muitas feições; ou mesmo se você está apenas carregar um monte de camadas. Camadas WFS geralmente levam muito tempo para carregar por causa disso.

10.2.2. moderado Follow Along: Consultas en Capas WFS

Aunque es posible consultar una capa WFS después de haberla cargado, a menudo es más eficiente contultarla antes de cargarla. De esta forma, solo pides los elementos que quieres, lo que significa que utilizas menos ancho de banda.

Por ejemplo, en el servidor WFS que estamos utilizando, hay una capa llamada countries (excluding Antarctica). Digamos que queremos saber donde está Sudáfrica de forma relativa a la capa south_poles_wfs (y puede que también la capa antarctica_country_border layer) que ya está cargada.

Hay dos formas de hacerlo. Puedes cargar la capa entera countries …, y luego construir una consulta como siempre una vez está cargada. Sin embargo, transmitir los datos para todos los países en el mundo y luego utilizar los datos para Sudáfrica parece un despilfarro de ancho de banda. Dependiendo de tu conexión, este conjunto de datos puede llevarte muchos minutos cargando.

La alternativa es construir una consulta como filtro incluso antes de cargar la capa desde el servidor.

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

  2. Conecte-se ao servidor que usamos antes e você verá a lista de camadas disponíveis.

  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. Pressione 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. No tienes por qué, pero si pruebas ambos métodos, observarás que ¡este es mucho más rápido que cargar todos los países antes de filtrarlos!

Notas de disponibilidad de WFS

Es raro encontrar un WFS con los elementos que necesitas, si tus necesidades son muy específicas. La razón por la que el Web Feature Service es relativamente raro son las grandes cantidades de datos que deben ser transmitidas para describir un elemento por completo. Por lo tanto no es muy rentable tener un WFS en lugar de un WMS, que solo envía imágenes.

El tipo más común de WFS que encontrarás será probablemente en una red local o incluso en tu propio ordenador, en lugar de en internet.

10.2.3. In Conclusion

Las capas WFS son preferibles ante WMS si necesitas acceso a los atributos y geometrías de las capas. Sin embargo, considerando la cantidad de datos que necesitan ser descargados (lo cual crea problemas de velocidad y falta de servidores públicos WFS disponibles) no es siempre posible utilizar WFS en lugar de WMS.

10.2.4. What’s Next?

A seguir, você verá como usar o QGIS Server para fornecer serviços OGC.