Our training courses are structured to give trainees step-by-step guide using the latest QGIS features. Here is an example of one our practicals for creating professional maps.
Trainees will learn how to
- Assign multiple style to a layer
- Working with presets
- Working QGIS print composer
- Generating maps using Atlas
Read on if you’d like to get a flavour of our training course practicals…
Creating professional maps with the Print Composer
QGIS’ Print Composer allows users to create professional maps for printing. It supports legends, frames, logos and all the other features you’d expect to see in a print quality map.
In this example, we’ll use some of the most common features required to generate a map for printing.
We’ll first load the electricity usage data created in another tutorial, style it using a simple colour ramp, then create a new map composer complete with title and legend.
Click here to download the tutorial data. After downloading, ensure to extract the file.
Loading data in QGIS
The styling of a vector layer can be performed using a single style, or a varying style, based on the value of one or more attributes. We are going to first load the London energy usage layer prepared in an another tutorial by joining electricity usage with the LSOAs vector layer.
Start a new QGIS project Add the MSOA_GL_ElecUsage.shp layer under extracted downloaded folder
The vector layer should now look like the figure below.
-> Energy consumption in London <-
Next, we are going to add a shapefile of London Boroughs to identify areas of high and low usage.
Add London_boroughs.shp from extracted downloaded folder Open layer properties and under Style: Set the style of the polygons to "No Brush" with a "Dash Line".
Your map now should look like the figure below:
-> Energy consumption in London <-
In QGIS, you can apply multiple styles to a single layer. Using this method, we do not need to load the same layer multiple times. In this case, we need two styles for London boroughs layer:
Without labels (as created above); to be used as an overview map
With labels (next section); for the main map
We can save the current style (without label):
Right-click on London_boroughs layer from the layer tree and select Styles > Add For the new style, type 'no label' and click OK
We can save the new styles (with labels) for the layer:
Right-click on London_boroughs layer from the layer tree and select Styles > Add For the new style, type 'with label' and click OK
Changes in the next section (adding label) will be saved in with label style.
We’ll now add labels to each of the boroughs. The name of each borough is stored as the value of the NAME attribute.
Click on the London_boroughs layer in the ToC Form the main menu, select Layer > Labelling
This window will allow us the set an attribute for label and also change font, size, rotation, buffer, etc.
-> Setting up labels on the London boroughs layer <-
Enable the Label this layer with option Set Field with labels to NAME Under Text section, set the font to 7 pt Under Buffer section: Enable Draw text buffer Set the Size to 0.5 mm Click OK
You should now be able to see a label for each borough.
-> London boroughs with labels <-
In QGIS, you can create presets for layer visibility and styles. In this example we are going to create the following presets:
Map of LSOAs with the energy usage and borough boundaries
A separate preset for the London boroughs (without labels) which will be used as an “overview” for the print composer
To create the first preset:
Ensure both layers are visible Right-click on London_boroughs and select Style > with label
On top of the legend tree in QGIS, you can see the icon for Manage Layer Visibility
Click on the Manage Layer Visibility icon From the drop-down menu, select Add preset... For the Name of the new preset insert Energy map Click OK
To ensure the preset has been correctly set, you can change the visibility of the layer, or change the style, and select the preset from the Manage Layer Visibility menu.
To create the second preset:
Hide All Layers from Manage Layer Visibility or simply press Ctrl+Shift+H Turn on the visibility for London_boroughs Right-click on London_boroughs and select Style > no label On top of the legend tree in QGIS, click on Manage Layer Visibility From the drop-down menu, select Add preset... For the Name of the new preset insert overview map
-> London boroughs <-
Now you should be able to switch between those two presets, and later use them as print composer frames.
The map is almost ready to be printed. Before printing, we’ll need to add a border, logos, legends, scale, etc.
There are quite a few steps involved in configuring the print composer so it’s recommended to regularly save your progress by saving the QGIS project.
From the main menu, select File > New Print Composer A new window will appear for Composer title Type Energy usage in London
-> The print composer title window <-
The print composer will appear. See Figure.
-> The print composer window <-
The print composer is split into two sections. Section 1 shows the map to be outputted and section 2 shows the settings for selected items in section 1.
The map we are going to produce is an A4 landscape PNG file.
In section 2, under Composition, for Presets, select A4(210 x 297 mm)
Now we need to add frames for the map extent and legend sections. You can add a rectangular shape by clicking on from the main toolbar.
From the main toolbar, add a new rectangle Click and drag a shape in section 1
Now let’s change the position and size of the rectangle:
Ensure the rectangle shape is selected in section 1 Click on Item properties in section 2 Under Shape, select Position and size Set the option as shown in Figure
-> Shape options <-
Add second, third and fourth rectangles with the following information Rectangle 2: X: 270 Y: 145 Width: 43.5 Height: 60 Reference Point: Centre Rectangle 3: X: 270 Y: 95 Width: 43.5 Height: 60 Reference Point: Centre Rectangle 4: X: 270 Y: 105 Width: 43.5 Height: 200 Reference Point: Centre Lock the position of each window by right-clicking on each of them
Section 1 of the print composer should look like this:
-> The print composer with placeholders layout <-
Let’s add the logos.
From the main menu, select Layout > Add Image Click within the middle rectangle on the right An empty box will appear In the right-hand panel (section 2), under the Item properties tab, click on Main properties button For Path, click on ... and browse to the folder where your images are located. Select an image
You should now see something similar to the image below.
-> Logos added to the composer <-
Now we’ll add some text in the rectangle below the logos:
From the main menu, select Layout > Add Label Click somewhere within the lower right-hand box
A new text box will appear, reading QGIS.
From the right-hand panel, click on Item properties In Main properties, change the text to refer to the source of the data and copyright notices.
-> Copyright notices <-
Now we’ll add the map from the QGIS canvas.
From the main menu, select Layout > Add map Drag a box in the main window
A map similar to the image below should now appear in the print composer.
To finalise the main map window, a few more changes will need to be made.
-> Adding map to the print composer <-
From the right panel, click on the Item properties tab Under the Main properties, set the following values: Tick the box for Lock layers for map item see image below Under Extents: Tick the box for Controlled by atlas
-> Adding a preset for map view <-
To add a scalebar:
From the main menu, select Layout > Add Scalebar
-> Adding a scalebar to the map <-
A scalebar with default settings should appear on the map. See Figure [PrintComposerAddScalebar]. To change the scalebar:
Select the scalebar from the map Click on Item Properties from the left-hand panel Under Segments Set left 0 and right 2 Set Size to 1000 Set Height to 2 mm
Next, we’ll add a legend:
From the main menu, select Layout > Add Legend Click somewhere within the upper right-hand box
QGIS will automatically add a legend for all the layers loaded in the canvas. We can edit the legend’s settings and remove the legend entries that we do not want to show. Manual edits of the legend text can also be performed to make it more readable.
To be able to edit the legend items, you first need to untick the box for Auto update. Use icons under the Legend items to edit or change the order of the items.
-> The default legend <-
From the right-hand panel, click on the Item properties Under Legend items: Select London_boroughs and then click on the red minus sign Select MSOA_GL_ElecUsage and click on the edit sign, a new window will appear. Change the content of Item text to Electricity Usage Click on the first value 2576.2400 – 3000.0000 and select edit sign to change the range to 2000 – 3000 Repeat for the rest of the values to round them and remove any unwanted zeros.
-> Editing legend values <-
-> Map with legend <-
To add an overview:
Add a new map (Map 1) to the place-holder between the map legend and the logos For Map 1, from the Item properties, Under Main properties Select Lock layers for map item From the visibility preset, select overview map Under Overviews tab Click on the plus sign, Overview 1 should be added to the overview list Ensure Draw "Overview 1" overview is selected For Map frame, select Map 0
-> Setting the preset view for the overview map <-
The map is now almost ready. You can export it as PNG or a PDF. Or you can keep reading for even more excitement!
-> The completed map <-
The map is now ready to be printed or outputted as an image. But, we are going to use this layout as a template and auto-generate energy consumption for each borough.
To set the coverage (this is already set, but make sure the option is enabled):
While Map 0 (the main map) item is selected, click on Item properties from the right-hand panel Select the option for Controlled by atlas generation
You can change the Margin around feature if you like, but we can keep at 10%. Further settings are also required:
Click on Atlas generation tab from the right-hand panel Tick the box for Generate an atlas Under Configuration, for Coverage layer select London_boroughs Under Output, for Output filename expression type: 'energy_'|| "NAME"
The expression for output will set the name of each output file. In this example we are going to have a name with ‘energy_‘ combined with the value of NAME column (what do you think this value is?)
To generate the maps:
In the print composer, from the main menu, select Atlas > Export Atlas as Images... Select a folder to output maps and press Choose
The process may take a while but you will eventually have 33 maps of the energy consumption for each borough. Note the overview for the maps and also the naming of the output files. See Figure beloq as an example of the maps created.
-> Final energy map for Kingston upon Thames generated by the Atlas <-