QGIS has georeferencing capabilities that allows an image of a historical map to become a raster layer by assigning points on the map geographic coordinates. This post experiments with said capabilities based on the tutorial from the Programming Historian. That tutorial was based on an earlier version of QGIS, and so there were additional experiments in trying to do the lesson with the current version of the program. 

The first item in the instructions was to install the GDAL Georeferencing plugin, but after some searching realized this was no longer a separate plugin, but a standard built in tool. The use of the tool was also a little different than described. 

The actual first steps involved setting up a new project, defining the CRS, and adding two vector layers, one being the coastline vector and the other displaying the lots of Prince Edward Island. From this point, I selected the Georeferencer found under the Raster menu.

This opened a separate window and a dialogue box. Again, the CRS had to be defined and the image of the historical map added.

Next was the adding of points and getting them to correspond to points on the map just started with the coastline and lot boundaries. Selecting the add point tool, you click on an easily definable spot on the historical map, along the coastline worked best. Once clicking such a spot, a dialogue box opened, and the key here is to select the option in the bottom left corner to enter coordinates from map canvas. Selecting this takes you to the main map so you can click the same spot on the map, giving the geographic position of the one map to the other. 

This process was then repeated several times, adding sufficient data for the computer to be able to chart the rest of the historical map based on these given points. 

coordinates set and ready to georeference

Then the georeferencing settings had to be set so the new raster could be named and given a file location, again do this by clicking the ellipsis instead of simply entering a name in the output raster field. Selecting “load in QGIS when done” automatically adds this raster layer to the map in the main window.

Finally, click the triangle play button to run the georeferencing and watch the progress bar progress.

After that, the new raster is added to the map, and as seen, the historical map raster lines up very closely with the coastline and lot vectors already there.

final map, with new raster and vector layers correctly aligned.

Earlier, as covered in this post, I discovered how to work with the QGIS program to build and edit maps. However, knowing how to change fonts and colors isn’t worth much without knowing how to create files that contain the map layers such as rivers or roads that had been pre-made for that earlier lesson. This post demonstrates how these shapefiles are created, again using a tutorial from the programming historian.

This project starts where the last QGIS one left off, with the map of Prince Edward Island. Because the new map going to be created looks at some differences over time, the first thing was inserting another historical map as another raster layer, this was done just as before. The new part is in creating three new vector layers, each of a different type. 

The basic steps for each are the same: 

1. In the menu bar, go to layer > Create Layer > New Shapefile Layer

2. In resulting “New Shapefile Layer” window: 

a. instead of simply typing in a file name in the box so labelled, click the ellipsis button next to it to not only name the new shapefile, but tell the computer where to save it.

b. set the CRS to match that of the layers you already have.

c. select the “geometry type” (dependent on the type of data that layer is to contain – points for things like towns, lines for roads or rivers, and polygons for things like regions or lakes.)

setting geometry type

d. add attribute fields – the type of and label of information you want linked to each point, line, polygon, etc. 

3. toggle editing and add points, lines, etc., finishing each with a right click which opens a box to add information to the attributes mentioned above in 2.d.

The first shapefile we create is the “points” type and will pinpoint cities and settlements, some of which no longer exist. The attributes here were settlement name, year (established), and end year (for those settlements no longer existing, when they ceased to exist). By default, new attributes are “text” unless otherwise specified, so for year and end year, whole number was selected as shown. 

Then, toggling editing on and selecting add point, one merely clicks where a settlement is/was, aided by the historical map rasters already in place, and fills in the name and year(s) attribute information in the box that pops up.

toggling editing

The second shapefile is to show historical roads and thus uses “line” geometry type. Here the attributes include name of road and year, again changing year to whole number input. 

setting type to whole number when adding attribute fields.

After turning on editing, and selecting add line, one places dots along where a road is, tracing roads from the historical map raster, right clicking at the end, which cues the attribute box to appear wherein name and year can be entered.

The third shapefile is to show the lots or districts the island is organized into, allowing us to use the polygon geometry type. Attributes are lot name and year. For rectangular lots, adding an item to the shapefile only requires clicking each of the four corners of the lot after toggling editing and selecting add polygon. 

Non rectangular areas are captured using “snapping” which is only a little more involved. First, I had to find the snapping toolbar, click the magnet to enable snapping, and go into the snapping options.

To be as accurate as possible, this snapping was done with reference to the modern coastline layer, changing the settings as described in the lesson. After closing the settings window, the new polygon is added much as the last one, only using more clicks to trace around the coastline.

showing the vertices of lot 38

Again, ending with a right click opens the attribute box and the polygon with its information becomes part of the shapefile. All the shapefiles created are saved wherever specified in step 2.a. for future use.

In this post, I am working with QGIS, following along the tutorial from the Programming Historian to create and edit a map of Prince Edward Island.

Upon opening a new project, the first task was to set the Coordinate Reference System (CRS) to the specifics of Prince Edward Island. This was done in the CRS tab in Project Properties. 

Project Properties window for the selecting of a Coordinate Reference System

Next was to input the coastlines from a shapefile having that information by adding it as a vector layer as shown below. By default, QGIS gives this a background fill, which was removed double clicking the coastline entry in the layers pane, thereby opening the layer properties window where the symbology involving such aspects of appearance as fills and outlines can be customized. The background was removed by changing the stroke color of the simple fill to “No Brush.”

Prince Edward Island’s hydro-network was entered as the next vector layer, and the lines changed to be blue befitting waterways.

Then I added the shapefile showing the landuse of Prince Edward Isalnd, e.g. where forests, wetlands, developed areas, etc. are, according to the 1935 inventory of the region on which the shapefile is based. The editing of symbology was more complicated here, so that the different categories would be distinguished in shades of green. From the symbology tab of the layer properties, I first had to select categorized instead of the default “single symbol,” then set the value to be categorized to “landuse,” and select the color ramp to the gradient of greens. 

using categorized option to configure the land-use vector layer

In order to remove the outlines between land sections, I selected “configure symbol for the symbol menu, and changed the stroke style of the simple fill to “No Pen.” 

map showing coastlines, hydro-network, and land-use of PEI.

Highways were added in the same way, again using the “categorized” option to make primary and secondary roads appear differently. 

Placenames followed, and were edited under the “Labels” tab of the Layer Properties window. A buffer was added so the names of cities would be legible against other things in the map. 

editing window for place name labels

Finally a raster layer was added, in much the same was vector layers were. This map image was then moved behind the other layers and the coastlines were bolded to finish the lesson.

final map of PEI made in QGIS
Skip to content