WFS 2.0 Client – Plugin for QGIS (english)

This is the English introduction to the QGIS WFS 2.0 plugin which is currently in development (zum Artikel in deutscher Sprache).


  • Supports Web Feature Service 2.0 (ISO 19142)
  • Supports Minimal Spatial Filter (BoundingBox-Filter)
  • Supports Stored Queries (INSPIRE pre-defined WFS)
  • English User-Interface
  • Tested with GeoServer beta 2.2, degree 3.x, GO Publisher WFS

The GML-Data (Version 3.2) which is received by the WFS will be stored as temporary file and loaded as QGIS-Layer.



The python plugin is available in the following repository which has to be manually added:

Since QGIS 1.8.0 the plugin is available in the default repository.



  • The plugin is a prototype – still in development
  • The plugin is Open Source (GPL)
  • Requires QGIS 1.7.4 or higher
  • The plugin uses the proxy settings in the QGIS configuration
  • The plugin is available in the official QGIS repository


The development of the plugin is part of my master’s thesis (beMasterGIS).
Feel free to comment!

24 Gedanken zu “WFS 2.0 Client – Plugin for QGIS (english)

  1. Thank you for your effort Jürgen. However I am not able to launch your plugin. It throws the following Python error:

    Traceback (most recent call last):
    File "C:/Users/Roman/.qgis/python/plugins\wfsclient\", line 67, in run
    dlg = WfsClientDialog(self)
    File "C:/Users/Roman/.qgis/python/plugins\wfsclient\", line 56, in __init__
    self.ui.lblMessage.setText("CRS is set to EPSG: {0}".format(str(self.parent.iface.mapCanvas().mapRenderer().destinationSrs().epsg())))
    AttributeError: 'str' object has no attribute 'format'

    I am using QGIS 1.7.2 on Windows 7 64bit

  2. Is there any chance you could allow the previous versions of WFS to be read with the plug in as well. The reason I ask is that you have the option to bound the WFS to the current window where the inbuilt wfs client does not.

  3. Hi.

    I’ve created an INSPIRE compliant WFS 2.0.0 feature download service using ArcGIS 10.1 For INSPIRE and I’m trying to use your WFS 2.0.0 client in QGIS to examine the data.

    When I try to examine the GetCapabilities using the WFS 2.0.0 client I’m getting the following error:

    “An error has occured while executing Python code:

    Traceback (most recent call last):
    File “C:/Users/SMW/.qgis//python/plugins\wfsclient\”, line 144, in getCapabilities
    root = ElementTree.fromstring(buf)
    File “C:\PROGRA~2\Quantum GIS Lisboa\apps\Python27\lib\xml\etree\”, line 1282, in XML
    File “C:\PROGRA~2\Quantum GIS Lisboa\apps\Python27\lib\xml\etree\”, line 1624, in feed
    File “C:\PROGRA~2\Quantum GIS Lisboa\apps\Python27\lib\xml\etree\”, line 1488, in _raiseerror
    raise err
    ParseError: syntax error: line 1, column 0

    Python version:
    2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)]

    QGIS version:
    1.8.0-Lisboa Lisboa, f440b60

    Python path: ['C:/PROGRA~2/Quantum GIS Lisboa/apps/qgis/./python', 'C:/Users/SMW/.qgis//python', 'C:/Users/SMW/.qgis//python/plugins', 'C:/PROGRA~2/Quantum GIS Lisboa/apps/qgis/./python/plugins', 'C:\\Windows\\system32\\', 'C:\\PROGRA~2\\Quantum GIS Lisboa\\apps\\Python27\\DLLs', 'C:\\PROGRA~2\\Quantum GIS Lisboa\\apps\\Python27\\lib', 'C:\\PROGRA~2\\Quantum GIS Lisboa\\apps\\Python27\\lib\\plat-win', 'C:\\PROGRA~2\\Quantum GIS Lisboa\\apps\\Python27\\lib\\lib-tk', 'C:\\PROGRA~2\\Quantum GIS Lisboa\\apps\\qgis\\bin', 'C:\\PROGRA~2\\Quantum GIS Lisboa\\apps\\Python27', 'C:\\PROGRA~2\\Quantum GIS Lisboa\\apps\\Python27\\lib\\site-packages', 'C:\\PROGRA~2\\Quantum GIS Lisboa\\apps\\Python27\\lib\\site-packages\\PIL', 'C:\\PROGRA~2\\Quantum GIS Lisboa\\apps\\Python27\\lib\\site-packages\\win32', 'C:\\PROGRA~2\\Quantum GIS Lisboa\\apps\\Python27\\lib\\site-packages\\win32\\lib', 'C:\\PROGRA~2\\Quantum GIS Lisboa\\apps\\Python27\\lib\\site-packages\\Pythonwin', 'C:\\PROGRA~2\\Quantum GIS Lisboa\\apps\\Python27\\lib\\site-packages\\wx-2.8-msw-unicode', 'C:\\PROGRA~2\\Quantum GIS Lisboa\\apps\\qgis\\python\\plugins\\fTools\\tools']”

    Have you come across this error before and can you provide any assistance?

    I’m using QGIS 1.8.0-Lisboa on a windows 7 machine.

    Many thanks, kind regards, Simon

  4. Previous comment contained XML GetCapabilities file. I can send via e-mail if required; just let me know your e-mail.

    Best wishes, Simon.

  5. Great plugin Jürgen!

    I installed it yesterday on my qgis 1.8.0. However, the BBOX filter doesn’t work. I returns the entire data set no matter what I type in.

    I hope you’ll find time to fix that.

  6. Hi Jurgen,

    Great plugin, well done!

    I was wondering if you could add functionality that would allow the user to view the bounding box coordinates of the currently selected “Feature Type”?

    Or to go even further, would it be possible to provide a checkbox named “Use maximum feature extent of current Feature Type as Bounding Box Filter”, that way the layer would always load without getting the dreaded “Longitude difference too large: …” error message.

    The reason I ask is, in instances when you add data you are not familiar with, you won’t know what coordinates to specify in the “Bounding Box Filter”.

    I hope to hear from you soon.
    Keep up the great work.


  7. Hi Jurgen,

    great plugin, my team and I use this to load data from our WFS into QGIS all the time. Do you have any plans for new features or what might go into the next release? I’d be happy to provide some detailed feedback if you are interested,

    kind regards,

    Alexis Brooker

  8. I’m trying the plugin with a Snowflake Software GoPublisher WFS at which is using urn:ogc:def:crs:EPSG::4326 as the coordinate system. This expects latitude-longitude coordinate order in the BBOX coordinates and it seems Snowflake doesn’t follow the informal GeoServer/Deegree convention of accepting lon-lat order if you specify the SRS using the older EPSG:4326 style. So I can’t do a BBOX filtered query on my service at the moment. (I tried typing the bbox bounding coordinates manually in the filter box without checking the “Use current Extent…” box but they don’t get sent in the request in this case.) I don’t know what the most correct way of handling this would be but I don’t think we can expect WFS 2 services to all adopt the EPSG:4326 lon-lat convention and with WFS2 we should use lat-lon by default. If QGIS itself doesn’t know about the axis order of particular coordinate systems then maybe we just have to have a dirty hack solution like adding a check box to reverse the order of the coordinates sent to the server so that users can at least manually set the order that works with a particular service?

  9. Hi,

    I’m using the plugin to test MapServer WFS 2.0 implementation. Capabilities load well, but when I go to getFeatures I get back a “Host not found” message. No request is received on the server side. What happens here ?


  10. Hello.

    I was very excited to find a WFS 2.0 client, thank you for making one! However, I have trouble with loading INSPIRE meteorological data.

    The data I’m trying to load is described here:

    All goes well until I list stored queries and choose the query I want to use. After this, the plugin asks to input values for parameters to be used by the query. My problem is that the plugin doesn’t allow me to leave any of the parameter values empty, even though many of the parameters are actually optional. When I try to get features all I get is a “Validation error” telling me that parameter value validation failed.

    I can’t post the http-address for the WFS queries because it contains my personal API-key. I could however provide it in a private message.

    Is there a way around this error?

  11. Changelog: 0.9.1

    • added https-Support;
    • added “Show Extent” Button;
    • changed to the official “urn:ogc:def:crs:EPSG::”-SRS-Pattern (requires GDAL >= 1.10);
    • improved UMN MapServer WFS 2.0 compatibility;

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>