Open a WFS layer online

Paste an OGC WFS endpoint and MapGeoData asks the server what it publishes, lets you pick a layer, and draws it on a map. It runs in your browser, needs no desktop GIS, and exports what you find as GeoJSON, a shapefile, CSV, or FlatGeobuf.

The viewer, shown here with sample point data. A WFS layer opens the same way. Open it with your own data →

What WFS is

WFS, the Web Feature Service, is the open standard for serving vector data over the web. Where a map tile service sends you a picture, WFS sends the features themselves, with their geometry and attributes, so you can query and export them.

It's what a lot of European government data is published as, since the INSPIRE directive pushed agencies toward open standards, and it's common on GeoServer and MapServer installations everywhere else. If you have been handed a link ending in /geoserver/wfs, this is what it is.

Opening one without desktop GIS

The usual advice is to add the endpoint as a layer in QGIS. That works, and it also means installing desktop GIS to look at one dataset.

In MapGeoData:

  1. Copy the endpoint, for example https://example.org/geoserver/wfs.
  2. Paste it into Add from URL. The app requests the server's capabilities document and lists every layer it publishes.
  3. Pick the layer you want. The list shows the server's own titles, not raw type names.
  4. Add it, then export it as GeoJSON, a Shapefile ZIP, CSV, or FlatGeobuf if you want the data as a file.

You can also paste a full GetFeature URL if you already have one. The layer named in it is the one that opens.

Coordinate order, and why your data sometimes lands at sea

WFS has a long-running disagreement about axis order. The same layer, requested in EPSG:4326, comes back longitude first from some servers and latitude first from others. Both are plausible numbers, so a wrong guess puts your data somewhere else in the world without any error appearing.

MapGeoData resolves this by checking rather than guessing. The capabilities document declares roughly where each layer is, so if the fetched features fall outside that area but their swapped version falls inside it, the order has clearly been reversed. It corrects them and says so. If neither order fits, it refuses to place the data rather than putting it somewhere wrong.

What it supports, and what it refuses

The layer is requested as JSON, which GeoServer, MapServer, and most current installations provide. Where a server can't return JSON but does offer a zipped shapefile, that's used instead, since MapGeoData reads those too. A server that offers only GML is refused with the reason given, because a broken parse that half works is worse than a clear no.

Layers from WFS 2.0.0 servers are paged through until complete, up to 100,000 features. Older 1.x servers have no standard way to ask for the next page, so those arrive in one request.

What you can do once it's open

Runs in your browser

Your data is drawn in the browser and nothing is stored on our side. There's nothing to install and no account to create. It sets no tracking cookies, and we never sell or share your data.

Frequently asked questions

What URL do I paste?

The service endpoint, which usually ends in /wfs or /ows, for example https://example.org/geoserver/wfs. You don't need to build a GetFeature request by hand. MapGeoData reads the server's capabilities document and lists the layers for you to choose from.

My server only offers GML. Will it work?

GML is not supported, and MapGeoData says so rather than half-parsing it. If the server also offers a zipped shapefile, which many GeoServer installations do, it fetches that instead. Otherwise the message names the formats the server does advertise.

Which WFS versions are supported?

2.0.0, along with 1.1.0 and 1.0.0. Only 2.0.0 defines paging, so a layer from a 1.x server arrives in a single request and may be truncated by the server's own limit.

Why did my data land in the wrong place?

WFS servers disagree about whether coordinates are longitude then latitude or the other way round. MapGeoData checks the data against the extent the server declares for that layer, and if the two orders have plainly been swapped it corrects them and tells you it did.

Is my data uploaded anywhere?

The layer is fetched from the WFS server to your browser and drawn there. If the server refuses direct browser requests, the fetch is relayed through our server instead, which passes the bytes back without keeping them.

Is the layer live?

No. What you open is a snapshot taken when you added it, so it will not change when the server's data does.

Is it free?

Completely free. No sign-up, no trial, no watermark.