I want to make some historical street maps using QGIS. I understand how to upload a historical OS map from DigiMaps to QGIS, but I want to actually 'draw' the streets myself in order to have some detailed maps. The area I am dealing with was subject to a slum clearance in the 1960s and I am looking to map it how it was in the late-nineteenth and early-twentieth centuries.

Could anyone offer advice?

Thanks in advance!

  • 1
    Related: mappinghacks.com/projects/brooklyn/georef_extract_howto.html
    – Mapperz
    Commented Aug 27, 2013 at 20:20
  • Though geocoder.us isn't going to be of much use on an OSGB map.
    – scruss
    Commented Aug 27, 2013 at 21:44
  • After you have digitized the data, you might want to "style" it with an old look. Not quite sure how to do it, but it would seem like you could employ similar techniques to what the folks over at stamen.com have done with their various watercolor, toner, burning, and other maps have done. Commented Aug 27, 2013 at 22:31
  • For Historic Maps it usually starts in a GIS but before printing/publishing it goes into Adobe Illustrator to get some historical flair. @scruss it is just an example - you can use another geocoder for the UK (there are many).
    – Mapperz
    Commented Aug 28, 2013 at 14:38
  • RyanDalton - I don't want it to look old; I'm aiming to create a detailed street map of streets that don't exist anymore. Commented Aug 28, 2013 at 17:10

2 Answers 2


I think you'll need to georeference the base image and then capture your vector layers manually drawing over it.

This seems like a similar proccess: http://geo.nls.uk/urbhist/guides_vectorlayerqgis.html but not exactly what you are looking for.

If you're unfamiliar with georeferencing this looks like a good guide as well: http://qgis.spatialthoughts.com/2012/02/tutorial-georeferencing-topo-sheets.html

I would make sure I load the base scanned image first and georeference it (if not done already) and then create a vector layer and capture streets. Should give you your lines in an attribute table which would then allow you to name them and if necessary create additional fields to describe them better. It depends on what exactly you are looking to do but if you want to display names you'll need a name field and if you want to do any routing calculation you'll need to describe their nodes (REALLY unfamiliar with this in qGIS!)

I've only ever done this in ArcMap but it looks very similar. Based on what I've read you'll want to do one geometry type per table but given that you want to capture streets that shouldn't be a problem.

  • Should also mention when georeferencing intersections that exist today would be a nice easy choice for control points!
    – James
    Commented Aug 27, 2013 at 21:32
  • You might be able to use the New Popular Edition map tiles as a GDAL virtual layer and trace over that. Sadly, I can't get this to work, but someone who understands GDAL better might be able to get data tiles working along with the URL from here.
    – scruss
    Commented Aug 28, 2013 at 1:38

Here is my workflow for adding NPE tiles to the Openlayers plugin:

  • In Windows Exporer, switch folder to C:\users\.qgis\python\plugins\openlayers_plugin\html
  • copy osm.html to npe.html
  • Open it with a text editor (I use notepad++ for that)
  • change the following:
line 3:
     <title>OpenLayers NPE Layer</title>
line 32:
line 33:
  • save and close the file

For Scotland, you might do the same with the following adress:


(note the different file format!)

  • change folder to openlayers_plugin (one step up)
  • edit openlayers_plugin.py
  • copy line 128 (with openstreetmap), insert it after 141 (the last entry with Stamen terrain) and edit it to:
self.olLayerTypeRegistry.add( OlLayerType(self, 'npe', 'osm_icon.png','npe.html', True) )

note that line numbers may change from version to version!

  • save and close the file
  • Open QGIS, and add the Openlayers Openstreetmap layer
  • Zoom to a place in England
  • add the new npe layer from the bottom of the Openlayers plugin list

If you have white tiles on the screen, just move the canvas a little bit


There are more TMS available worldwide, you may find the url's in JOSM with pressing F12, and clicking on the WMS-TMS tab, or in this list:


  • @MikeFallopian: if the NPE maps work for you, André's solution is really good. I tried it for a random place in England, digitized a few features from the map, then compared it to modern air imagery. The tiles seem to be accurately georeferenced.
    – scruss
    Commented Aug 29, 2013 at 11:30
  • 1
    This answer sadly no longer works. I will try to provide current answer later. But basically you have to provide your own layer.py file and register layer in openlayers_plugin.py. Fortunately, it's quite straightforward. Commented Apr 11, 2015 at 19:57
  • By now, I prefer the TileLayerPlugin, which allows you to add new services using a simple tab-delimited text file.
    – AndreJ
    Commented Apr 12, 2015 at 6:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.