A Web Mapping Service (WMS) is a service hosted on a remote server. Similar toa website, you can access it as long as you have a connection to the server.Using QGIS, you can load a WMS directly into your existing map.
From the lesson on plugins, you will remember that it’s possible to load a newraster image from Google, for example. However, this is a once-offtransaction: once you have downloaded the image, it doesn’t change. A WMS isdifferent in that it’s a live service that will automatically refresh its viewif you pan or zoom on the map.
The goal for this lesson: To use a WMS and understand its limitations.
11.1.1. Follow Along: Loading a WMS Layer¶
For this exercise, you can either use the basic map you made at the start ofthe course, or just start a new map and load some existing layers into it. Forthis example, we used a new map and loaded the original places andlanduse layers and adjusted the symbology:
Load these layers into a new map, or use your original map with only theselayers visible.
Before starting to add the WMS layer, first deactivate “on the fly”projection. This may cause the layers to no longer overlap properly, butdon’t worry: we’ll fix that later.
To add WMS layers, click on the Add WMS Layer button:
Remember how you connected to a SpatiaLite database at the beginning of thecourse. The landuse, places, and water layersare in that database. To use those layers, you first needed to connect to thedatabase. Using a WMS is similar, with the exception that thelayers are on a remote server.
- To create a new connection to a WMS, click on the New button.
You’ll need a WMS address to continue. There are several free WMS serversavailable on the Internet. One of these is terrestris, which makes use of the OpenStreetMap dataset.
To make use of this WMS, set it up in your current dialog, like this:
The value of the Name field should be terrestris.
The value of the URL field should behttp://ows.terrestris.de/osm/service.
Click OK. You should see the new WMS server listed:
Click Connect. In the list below, you should now see thesenew entries loaded:
These are all the layers hosted by this WMS server.
Click once on the OSM-WMS layer. This will display itsCoordinate Reference System:
Since we’re not using WGS 84 for our map, let’s see all the CRSs we haveto choose from.
Click the Change button. You will see a standardCoordinate Reference System Selector dialog.
We want a projected CRS, so let’s choose WGS 84 / PseudoMercator.
Click OK.
Click Add and the new layer will appear in your map asOSM-WMS.
In the Layers list, click and drag it to the bottom of the list.
You will notice that your layers aren’t located correctly. This isbecause “on the fly” projection is disabled. Let’s enable it again,but using the same projection as the OSM-WMS layer, which isWGS 84 / Pseudo Mercator.
Enable “on the fly” projection.
In the CRS tab (Project Properties dialog), enter thevalue pseudo in the Filter field:
Choose WGS 84 / Pseudo Mercator from the list.
Click OK.
Now right-click on one of your own layers in the Layers list andclick Zoom to layer extent. You should see the Swellendamarea:
Note how the WMS layer’s streets and our own streets overlap. That’s a goodsign!
11.1.1.1. The nature and limitations of WMS¶
By now you may have noticed that this WMS layer actually has many features in it.It has streets, rivers, nature reserves, and so on. What’s more, even though itlooks like it’s made up of vectors, it seems to be a raster, but you can’tchange its symbology. Why is that?
This is how a WMS works: it’s a map, similar to a normal map on paper, that youreceive as an image. What usually happens is that you have vector layers, whichQGIS renders as a map. But using a WMS, those vector layers are on the WMSserver, which renders it as a map and sends that map to you as an image. QGIScan display this image, but can’t change its symbology, because all that ishandled on the server.
This has several advantages, because you don’t need to worry about thesymbology. It’s already worked out, and should be nice to look at on anycompetently designed WMS.
On the other hand, you can’t change the symbology if you don’t like it, and ifthings change on the WMS server, then they’ll change on your map as well. Thisis why you sometimes want to use a Web Feature Service (WFS) instead, whichgives you vector layers separately, and not as part of a WMS-style map.
This will be covered in the next lesson, however. First, let’s add another WMSlayer from the terrestris WMS server.
11.1.2. Try Yourself¶
Hide the OSM-WSM layer in the Layers list.
Add the “ZAF CGS 1M Bedrock Lithostratigraphy” WMS server at this URL:http://196.33.85.22/cgi-bin/ZAF_CGS_Bedrock_Geology/wms
Load the BEDROCKGEOLOGY layer into the map (use the Add WMSLayer button as before). Remember to check that it’s in the sameWGS 84 / World Mercator projection as the rest of your map!
You might want to set its Encoding to JPEG and itsTile size option to 200 by 200, so that it loadsfaster:
Check your results
11.1.3. Try Yourself¶
- Hide all other WMS layers to prevent them rendering unnecessarily in thebackground.
- Add the “OGC” WMS server at this URL:http://ogc.gbif.org:80/wms
- Add the bluemarble layer.
Check your results
11.1.4. Try Yourself¶
Part of the difficulty of using WMS is finding a good (free) server.
Find a new WMS at spatineo.com (orelsewhere online). It must not have associated fees or restrictions, and musthave coverage over the Swellendam study area.
Remember that what you need in order to use a WMS is only its URL (andpreferably some sort of description).
Check your results
11.1.5. In Conclusion¶
Using a WMS, you can add inactive maps as backdrops for your existing map data.
11.1.6. Further Reading¶
11.1.7. What’s Next?¶
Now that you’ve added an inactive map as a backdrop, you’ll be glad to knowthat it’s also possible to add features (such as the other vector layers youadded before). Adding features from remote servers is possible by using a WebFeature Service (WFS). That’s the topic of the next lesson.