Event: Historic maps of the Stirling area

Putting Stirling on the Map

Monday 29th February 2016 at 7.30pm in the Smith

Paula Williams, Curator of Maps, Mountaineering and Polar Collections, from the National Library of Scotland will talk about four hundred years of mapping the Stirling area, illustrated with maps from the NLS collection.

See the Stirling Local History Society for details:

And the Flyer.

Highlighting Selections in QGIS

I have been working a lot with points recently, and one thing with the default selection highlighting in QGIS is that selections do not really stand out. This is especially true with point layers.

A bit of an extreme example, but there are 15 points selected in the middle of this image.


However, we can remedy this with the Expression Plus plugin (by Nathan Woodrow) and a rule based symbology.


This plugin adds a great function: isselected()

With this we can easily create rule to symbolise features that are selected.

The rule for symbology is as follows:

QGIS 2.12+:

QGIS 2.8:

So we can see that 2.12 has added a slightly more dynamic way of applying the symbology.


We can now slightly more easily see our selection.


But one final setting. With symbol levels we can really make the selections pop.


Symbol levels can be set from the bottom right of the styles tab, through rendering order. We simply want out selection to have a higher number than the other symbologies. Thus being rendered in a later pass and appearing on top.


Much better.

Mapping Google Location Data

A cool python script has been created that allows you to easily convert your google location (Takeout) data into a shapefile.

You can get your data from: Google Takeout
And you only need the “Location History – JSON format”

The conversion python script can be downloaded from: GitHub

The python script requires GDAL and its python bindings, but can be easily run if you installed QGIS using the OSGeo4W installer. From the advanced installer, under the Lib section.


Then using the OSGeo4W Shell.

Run the command:


Then just style it in QGIS as desired.

Mapping Glasgow Districts

First update: Glasgow Regions Mapped – Progress Update 1

Lets map the districts/regions/neighbourhoods/suburbs of Glasgow. The divisions of a city can be hard to distinguish, there are no hard boundaries between regions and these can be dynamic over time. Where does the West End begin? As soon as you cross the M8, or later? Where does the West End end? Before Partick, halfway through, or well past Scotstoun? Have your say!

People Make Glasgow, help define its boundaries.

Start mapping!

This was done successfully in Boston: Bostonography – Neighborhoods as seen by the people.

Although Boston is a significantly easier target. Their map covered 21 different neighbourhoods. According to Wikipedia, Glasgow has at least 145 districts.

This will only be significant if we get a good number of responses. So please feel free to share!

Made possible by: Nick Martinelli from extent(PNW). Code on GitHub.

Map Glasgow’s Regions.

The Great Polish Map of Scotland Revisited

A lot of progress has been made since my last visit: Visiting the Great Polish Map of Scotland

This time I had a bit more time, staying overnight with the very accomodating girlfirend at the Barony Castle Hotel. The steak was excellent, but the sauna was not very hot. Overall a good experience though.




As you can see from the photos restoration works are in full progress.


And dontains can be made to the worthy cause at: MapaScotland.org


For a view of the way up to the map, see my first post on Mapillary:

Self Hosted Leaflet Photo

There is an excellent plugin for Leaflet called Leaflet.Photo.

The plugin was created by Bjørn Sandvik. See the full post:  http://blog.thematicmapping.org/2014/08/showing-geotagged-photos-on-leaflet-map.html

The plugin has a number of examples that show usage with image hosting platforms, like Google Photos and Instagram, which have assicaited API’s for returning information about the image in question.

I was however keen to host the sollution completely myself, so simply have a folder of images that would populate on the map if they had exif GPS information.

I have created an example available on GitHub:


Simply download the full repo:


Copy the local_file_example folder. Replace the images in the Photos folder with your own photos. Load it onto any php supporting webhost.

Like: BlueHost

Or for more advanced users, the examples below are on: DigitalOcean

And link to the folder with the index.html



GIS to CAD using ogr2ogr – Part 3 – Point Annotation to Text in CAD

GIS to CAD using ogr2ogr – Part 1 – Shp to DXF with Contour Data
GIS to CAD using ogr2ogr – Part 2 – GML to DXF with OS MasterMap

MasterMap Topo Sample Data:


OS MasterMap has an annotation layer, which is simple to symbolise in a GIS program. But becomes more difficult in CAD software.

With ogr2org, when writing a DXF file, if you have an input point geometry, which has an OGR_STYLE attribute, it will be written as a text geometry when opened in CAD.

So for our MasterMap data we have one layer we want to convert to text:

So for this we are primarily interested in “textString” and potentially “orientation”.

Lets see the layer as points first as a baseline:


Zoomed in:


But lets try that as text. We will keep this simple and only take into account orientation and to a small extent height. Lets look at orientation:

Orientation – The orientation of text or symbol features for cartographic placement. This is measured in tenths of a degree anticlockwise from due east (0–3599).

So conversion to degree will be simple. Orientation/10

We can also take into consideration height as a multiplier.

And “textString” stores the text itself.

The command:

Full extent:


Zoomed in:



Since this is run in windows, through the regular console, the escape character for quotes is two quotes “”‘. So a combination on ‘ ” and “”‘ we can accommodate all the required quotes.


Font: Arial

Size: Multiplier of the height field, I am not sure what the units are, comments appreciated.

Text: textString column

Align: In degrees

Position: the OS position and the ogr2ogr style position are slightly different, so better placement could be achieved with some pre-processing

GIS to CAD using ogr2ogr – Part 2 – GML to DXF with OS MasterMap

GIS to CAD using ogr2ogr – Part 1 – Shp to DXF with Contour Data
GIS to CAD using ogr2ogr – Part 3 – Point Annotation to Text in CAD

For this example we are using Ordnance Survey MasterMap Topology Layer data.

MasterMap Topo Sample Data:


Now we know that we can maintain an attribute through layers, as we saw in the shp to DXF example, the export of MasterMap should be straightforward.

Let’s first see what the GML file contains.

So we have 6 layers in total.

For MasterMap in CAD we will be mainly interested in CartographicText, TopographicPoint, and TopographicLine.

Lets start with TopographicLine.

Nothing too useful.

A bit more details:


For this feature the “descriptiveGroup”” seems the most useful, and from reading the os-mastermap-topography-layer-user-guide.pdf the best would be either a combination of descriptiveGroup and descriptiveTerm or using the featureCode. Since this is a simple conversion we will just use a combo of descriptiveGroup and descriptiveTerm to create our DXF layers.

I will be using || for concatenation, which works with the SQlite SQL dialect.


Not quite. Seems to be missing geometry, perhaps a SQL select issue.

This can be tested with:


So we do not have any geometry. Lets bring that in.

Geometry looks good:


But if we check the attributes in QGIS:


We can see that all of the attributes that are not 0 have both a descriptiveGroup and a descriptiveTerm, which was not what we can see in the ogrinfo summary. So our SQL statement is cutting some out.

Try again:

!!remove the !! and the space from the word after, the word in question breaks WordPress.

Looking better:


But it won’t open in AutoCAD DWG TrueView. Lets try running it through a ShapeFile format first before the DXF conversion.

!!remove the !! and the space from the word after, the word in question breaks WordPress.



No indication of why a direct GML to DXF conversion would hang TrueView, and your mileage with other CAD software may vary. But ShapeFile is a very simplified geometry format, so perhaps running through that helps with some more complex geometry in the GML. Hard to say with no errors from TrueView, just a stuck program.

Repeat for point:

!!remove the !! and the space from the word after, the word in question breaks WordPress.

GIS to CAD using ogr2ogr – Part 1 – Shp to DXF with Contour Data

GIS to CAD using ogr2ogr – Part 2 – GML to DXF with OS MasterMap
GIS to CAD using ogr2ogr – Part 3 – Point Annotation to Text in CAD

The power of GDAL, and specifically ogr2ogr is pretty impressive. This conversion is from shp to DXF, which is a somewhat universal CAD format so further conversion should be possible.

This post will cover contour export while maintaining 3D elevation, in addition to contour values as layers in CAD. The data used is OS terrain 50.

OS Terrain 50:




Contours in 3D:

With the -zfield creating the 3d elevation.

Great result:


The alternative is to just store the z-value as layers.

Layers work great:


With the ogr2ogr DXF driver, if you have an input column called “Layer” then it will be used to group features as a layer in DXF. We use a SQL query to achive this. Prop_Value is the height field in my input data.

And putting them all together:

Result not as expected, flat output:


Adding our SQL select statement removes our zfield attribute as such ogr2ogr cannot access it. Lets resolve this:



Layers and height.