Viewing posts by Tim Sutton

Creating a live, topic specific mirror of OpenStreetMap in PostGIS

Posted by: Tim Sutton | in Docker, PostGIS, QGIS | 1 month, 4 weeks ago | Comments


In this article, we will do a walk-through of creating a live mirror of OSM for a specific country or region and for a specific set of OSM features. For this example, we will fetch all building data for Angola into a PostGIS database, and update that database with new features as they arrive in OSM. Providing an OSM mirror in this way is a powerful tool to pair the power of OSM with the power of QGIS and PostGIS. Now you will be able to do offline analysis of the data in OSM. How does this all work? Here is a little diagram that illustrates the underlying architecture (click for a larger version):

FBIS 2 Launch Workshop

Posted by: Tim Sutton | 2 months, 1 week ago | Comments

How to make beautiful lollipop call out labels in QGIS

Posted by: Tim Sutton | in QGIS | 2 months, 2 weeks ago | Comments
Call out labels are a handy cartographic instrument for attaching labels to features on the map where you want the label to be offset from the feature being labelled. It allows you to prevent the map becoming overcrowded. I call the variant I describe here 'lollipop' labels because the 'callout line' is rendered with a decorative ball at the end.
Generating the callout geometry

I am using logic like this to make callout labels using a geometry generator:
make_point( "auxiliary_storage_labeling_positionx" , "auxiliary_storage_labeling_positiony" )),
make_point( "auxiliary_storage_labeling_positionx" , "auxiliary_storage_labeling_positiony" )
The line runs from the closest point along the edge of the polygon to the bottom left corner of the label box. With this configuration it works well when my ‘lollipop’ callout label is north-east of the polygon being labelled:
But doesn’t work when the label is e.g. south-west of the polygon as the label falls over the call out line:

Using NOTIFY to automatically refresh layers in QGIS

Posted by: Tim Sutton | in PostGIS, QGIS | 2 months, 3 weeks ago | Comments

One of the most brilliant but little-known features of QGIS is the ability to trigger layer refreshes and events in response to notifications from PostgreSQL. This was developed by the wizards from Oslandia and is easily added to any existing table in your PostgreSQL database - including PostGIS tables. This feature was added in version 3.0 (see Take for example this simple table:

How to easily add South African and Namibian toposheets as XYZ tiles to QGIS

Posted by: Tim Sutton | in QGIS | 5 months, 2 weeks ago | Comments

Thanks to the great work of Grant Slater and the OpenStreetmap team, there are freely available XYZ tilesets for South Africa and Namibia 1:50 000 series toposheets which can easily be added to QGIS. Here is the general procedure to add a layer:

Using a SAMBA/CIFS mount as a docker volume

Posted by: Tim Sutton | in Docker | 1 year, 2 months ago | Comments

I preface this article by saying that what I am showing here is probably not best practice and you should test to see if it works reliably for you before taking this route. I should also mention that this is a hacky approach because it breaks our ‘never log on to a server’ rule, so it is not a long-term solution - it is a short-term hack until Hetzner adds a cloud storage offering to their cloud platform.

How to resolve issues with QGIS 3 Processing Dialog Layouts on MacOS

Posted by: Tim Sutton | in QGIS | 1 year, 8 months ago | Comments

If you are using QGIS 3 master builds on MacOS and encounter issues with the display of processing dialog layouts like this:

Kartoza at GeoNode Summit 2016

Posted by: Tim Sutton | in GeoNode | 2 years, 6 months ago | Comments

Four of the Kartoza team (Tim, Etienne, Ismail and Rizky) attended the GeoNode Summit in Rome held in November 2016. The World Food Programme provided the venue for the event and our attendance was funded by the WorldBank/GFDRR. The event was a really great opportunity to interact with the GeoNode community. We used the opportunity to learn about the upcoming plans for GeoNode and discuss some of our own plans. 

Template by Blacktie Mezzanine theme by CodingHouse