17.3 OGC Services — WMS, WFS, WMTS, WCS
Standardised GIS web services you'll meet in government and enterprise contexts.
Key takeaways
- OGC Web Services are standardised APIs for serving geographic data.
- WMS, WFS, WMTS, and WCS cover maps, features, tiles, and coverages.
- Modern REST-based alternatives (OGC API Features, Maps, Coverages) are replacing the legacy SOAP-like standards.
Introduction
Before Mapbox and RESTful APIs, the GIS world standardised on a family of OGC Web Services. You'll still meet them in government data portals, research infrastructure, and enterprise GIS deployments. This lesson covers what they are and how to use them.
The OGC family
WMS — Web Map Service
Delivers pre-rendered map images. Client sends a GetMap request with bbox, CRS, layers, width, height; server returns a PNG / JPEG.
1https://server/wms?
2 service=WMS&
3 version=1.3.0&
4 request=GetMap&
5 layers=streets,buildings&
6 styles=&
7 bbox=-180,-90,180,90&
8 width=800&height=400&
9 crs=EPSG:4326&
10 format=image/pngUseful for: quick overlay of government layers, legacy GIS integration. Drawbacks: fixed styling, no interactivity.
WMTS — Web Map Tile Service
A tiled variant of WMS. Server exposes pre-cached tiles at specific zoom levels. Similar to slippy map tiles but standardised.
WFS — Web Feature Service
Delivers actual vector features (GeoJSON, GML, KML). Client queries with bbox and attribute filters; server returns features.
1https://server/wfs?
2 service=WFS&
3 version=2.0.0&
4 request=GetFeature&
5 typeNames=parks&
6 bbox=10,55,12,57,EPSG:4326&
7 outputFormat=application/jsonUseful for: downloading data subsets, feeding into analysis.
WCS — Web Coverage Service
Delivers raster coverages (DEMs, satellite imagery) with precise geospatial metadata. Clients can request specific subregions, bands, and resolutions.
CSW — Catalogue Service
Search and discovery of datasets and services. Used by national spatial data infrastructures (SDIs) to advertise data holdings.
Capabilities discovery
Every OGC service exposes a GetCapabilities document listing:
- Available layers / feature types.
- Supported CRSs.
- Bounding boxes of holdings.
- Supported formats.
- Style definitions (SLD).
https://server/wms?service=WMS&request=GetCapabilitiesReturns XML. Parse it before writing clients.
QGIS integration
QGIS natively supports all OGC services:
- Layer → Add Layer → Add WMS/WMTS Layer.
- Layer → Add Layer → Add WFS Layer.
One of the practical strengths of the OGC ecosystem: drop a URL in QGIS and you're working with authoritative data.
OGC API Features (modern replacement)
The legacy WFS is SOAP-ish and verbose. OGC API Features replaces it with a modern REST + JSON design:
1GET /collections # list datasets
2GET /collections/parks # dataset metadata
3GET /collections/parks/items # feature collection
4GET /collections/parks/items/42 # single feature
5GET /collections/parks/items?bbox=... # filter by bboxResponses are GeoJSON. Successor standards: OGC API Maps, OGC API Tiles, OGC API Coverages.
Servers: pygeoapi, GeoServer, ldproxy.
Authentication
Some services require authentication:
- Basic auth in HTTP headers.
- API keys as query parameters.
- OAuth 2.0 for enterprise.
- INSPIRE / EU directives often require registration.
Check the service's documentation; QGIS, owslib (Python), and curl all support authenticated requests.
Python access
1from owslib.wfs import WebFeatureService
2[object Object]
3[object Object]
4When to use OGC services
- Government / regulatory data portals.
- Legacy enterprise GIS integration.
- When a dataset is only available via OGC endpoints.
When to prefer something else
- Simple static data → GeoJSON over HTTP.
- Large analytical datasets → cloud-native formats (COG, Parquet).
- Web mapping → vector tiles (PMTiles).
- Modern APIs → OGC API Features or custom REST.
INSPIRE
The EU's INSPIRE Directive (2007) mandates that member states publish environmental data via OGC services. Result: enormous volumes of data available through WMS and WFS across Europe. Quality varies but coverage is dense.
Self-check exercises
1. WMS vs WMTS — difference?
WMS generates images on demand based on any bounding box; WMTS serves pre-cached tiles at specific fixed zoom levels and positions. WMTS is faster (tiles cached) and scales better, but WMS can deliver any arbitrary view including custom CRSs. Most modern use is WMTS for performance; WMS remains for legacy and flexibility.
2. When would you use WFS instead of downloading a dataset?
When you need only a subset (bbox or attribute filter) of a large dataset. A 10 GB national parcel dataset can be queried for "parcels within this bbox where owner = 'Acme Corp'" via WFS, returning maybe a few MB. Full download would be overkill. WFS also provides a live view, so if the data updates, you get latest.
3. Why is OGC API Features replacing WFS?
WFS is verbose, SOAP-like, and awkward for modern web clients — queries are URL-encoded, responses are XML (GML). OGC API Features uses REST, JSON (GeoJSON), and HTTP status codes idiomatically. Writing a client is one afternoon instead of a week. Both are OGC standards, but the new one fits modern web development patterns.
Summary
- WMS (map images), WMTS (tiles), WFS (features), WCS (coverages), CSW (catalog).
- GetCapabilities documents list a service's offerings.
- QGIS and
owslibare the easy entry points. - OGC API Features is the modern REST-based successor.
- Government and EU data portals are the main consumers.
Further reading
- OGC specifications —
ogc.org/standards. - INSPIRE Geoportal — European data gateway.
- pygeoapi, GeoServer documentation.
owslibPython library.