There are quite a few different types of web-based map service that can be loaded in QGIS. Each type of web service provides data; often, this is the same data in different ways. This recipe is about helping you figure out what type of web service you want to consume, and conversely what type of web service you may want to create for others to use.
This recipe is all about thinking, so you don't need anything in particular to start. It does help if you have a project in mind and some type of data you are interested in using or creating. Most, if not all, of these methods require an Internet connection or a local server, providing these services. Of course, if you have the data locally, you should probably just load it directly.
To help with the following section, here's a list of acronyms:
|
Criteria |
CSW |
WFS |
WFS-T |
WCS |
WMS |
Tiles (WMTS, XYZ, TMS) |
|---|---|---|---|---|---|---|
|
Do you already know where to find the data you want? |
No |
Yes |
Yes |
Yes |
Yes |
Yes |
|
Do you need to edit or apply custom styling to the data? |
Yes |
Yes |
Yes |
No |
No | |
|
Do you care if the data is vector or raster? |
Vector |
Vector |
Raster |
Raster |
Raster | |
|
Do you need the data at its original resolution or quality? |
Yes |
Yes |
Yes |
No |
No | |
|
Do you need data at specific resolutions or in a specific projection? |
Yes |
Yes |
Yes |
Yes |
No | |
|
Recipe number in this chapter. |
3 |
2 |
2 |
5 |
4 |
4, 6 |
Now that you've found the appropriate recipe for the web service that you want to use, jump to this recipe later in this chapter. If you're still not sure, read on for more hints on how to pick the correct service. This recipe applies both to how you use web services and how to decide what web services to offer (if you put up a web service for other people to use).
Generally speaking, from left (WFS) to right (Tiles) the speed of the service increases. Tiles serve data the fastest to end users but with the most limitations.
For each of the services, there is a QGIS tool (built-in or plugin). This tool stores your list of web servers and connection settings for each service. When you go to load a layer from a chosen server for a particular protocol an up-to-date list of layers is requested from the server (that is, the GetCapabilities XML). You then get to pick off this list the layers that you would like to add to the map canvas (and depending on service type, the projection, and the file type).
Vector is generally slower, as more data needs to be transmitted as the data grows. Raster formats are a fixed number of pixels onscreen, so it's always approximately the same amount of data per screen load.
Each situation will have additional considerations. For example, if you need a specific projection, you probably can't use a Tile service because these are usually only in very specific projections (Web/Spherical Mercator). Or perhaps, you want to print large paper maps. Then, you probably want WFS or WCS in order to get the full resolution possible over your entire region.
One of the most common mistakes is to think that you need vector data when you actually just need a background tile that incorporates vector data. A great example of this is road data. If you don't actually need to style, select, or individually manipulate road data, and then a Tile or WMS type layer will be much faster.