Blog

Sharing our passions

FBIS 2 Launch Workshop

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

How to make beautiful lollipop call out labels in QGIS

Posted by: Tim Sutton | in QGIS | 2 weeks, 1 day 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_line(
closest_point($geometry,
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 | 3 weeks, 4 days 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 https://qgis.org/en/site/forusers/visualchangelog30/#feature-trigger-layer-refresh-or-layer-actions-from-postgresql-notify-signal). 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 | 3 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:

Year in Review: 2018

Posted by: Carina Christelis | 4 months, 1 week ago | Comments

It’s been another awesome year for our Team. We have come a long way since establishing Kartoza in 2014, building many different software products, making friends and working with existing and new clients. Forming a company around an open source friendly business model presents many challenges but is also extremely rewarding. Here is our 2018 year end review that we would like to share with you! 

Adding elevation to a line from a DEM in PostGIS and maintaining accurate measures

Posted by: Gavin Fleming | in PostGIS, QGIS | 8 months, 1 week ago | Comments

This is the second in a three part series on the behind-the-scenes GIS work that can go into planning a complex event, in this case the Cape Town Marathon.

How to create a point distance marker layer along a line in PostGIS

Posted by: Gavin Fleming | in GRASS GIS, PostGIS, QGIS | 8 months, 2 weeks ago | Comments

This is part 1 of a 3-part series.

Setting up geogig in a production environment

Posted by: Admire Nyakudya | in Docker, GeoServer, PostGIS | 10 months ago | Comments

GIS practitioners and developers have long been interested in versioning spatial data. Luckily the folk at LocationTech have enabled us to do so through the provision of GeoGig (formerly geogit). Moreover, Geogig can interact with GeoServer seamlessly. At Kartoza we use Docker for orchestration of our services and as such it will form the backbone of this article.

How to Setup SSL on Nginx Using LetsEncrypt

Posted by: Boney Bun | 10 months, 1 week ago | Comments

How to Setup SSL on NGINX Using Let's Encrypt

Another doc about SSL? Maybe... We are writing this to explain our trial and error on setup SSL on the servers. You might have read somewhere about setting up SSL (so have we, and it's painful).
Our blog is based on hands-on experience and hopefully you can learn something from it.

QGIS, InaSAFE, OpenStreetMap, and GeoNode in Understanding Risk 2018

Posted by: Ismail Sunni | in Conference, GeoNode, InaSAFE, QGIS | 10 months, 2 weeks ago | Comments

Using a SAMBA/CIFS mount as a docker volume

Posted by: Tim Sutton | in Docker | 1 year 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.

Some QGIS 3 Browser Improvements - Small Things Matter

Posted by: Admire Nyakudya | in QGIS | 1 year, 1 month ago | Comments

Well, QGIS 3 has been out for a couple of weeks now with lots of new functionality. While you are still feeling your way around all the new features I thought I could highlight some of the improvements to the browser panel that will make you fall further in love with QGIS. 

An intern's perspective on her working experience at Kartoza during the summer vacation

Posted by: Admire Nyakudya | in Education, Jobs | 1 year, 2 months ago | Comments

As a leading Open Source GIS company, Kartoza aims to introduce people and organisations to the world of Open Source GIS in South Africa. The majority of educational institutions in South Africa still teach students GIS and Remote Sensing using proprietary software. During the last few years, there has been a steady increase in institutions migrating to using Open Source GIS systems.

Kartoza is always on the lookout for young and talented students to enroll them in our vacation work or internship program with a possibility of employment. The following story is the experience from our most recent intern, Natalia Dambe, a Master's Student at the University of Cape Town. In her words:

A new plugin to manage land (survey) parcels in QGIS

Posted by: Admire Nyakudya | in QGIS | 1 year, 2 months ago | Comments

Kartoza releases the CoGo Plugin for QGIS

Kartoza recently published the CoGo Plugin (aka Parcel Plugin) in the QGIS plugin repository. This plugin expands the group of plugins designed to manage SDI (Spatial Data Infrastructure). CoGo ('coordinate geometry') refers to its ability to handle both types of coordinates used in land surveying, namely cartesian coordinates (x,y; long/lat) and polar coordinates (bearing and distance).

Changing the line direction of line features using the geometry generator in QGIS

Posted by: Admire Nyakudya | in QGIS | 1 year, 6 months ago | Comments

I have been playing around with roads layers and wanted to change the line directions for some of my features. I looked around for solutions to do this in QGIS and saw that I could use the swap vector direction plugin in QGIS or ST_reverse in PostgreSQL. But I wanted to find a non destructive way to do this as I did not want to alter my data. I decided to try the geometry generator in QGIS.

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

Posted by: Tim Sutton | in QGIS | 1 year, 6 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:

Create a custom reference grid in QGIS composer

Posted by: Gavin Fleming | in QGIS | 1 year, 6 months ago | Comments

If you need to create a reference grid like this for your map, here's a simple method.

Kartoza at GeoNode Summit 2016

Posted by: Tim Sutton | in GeoNode | 2 years, 4 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. 

Introducing the first Tangible Landscape in Africa

Posted by: Gavin Fleming | 2 years, 6 months ago | Comments

As part of Kartoza's outreach programme, I recently helped the geography department at St Johns College in Johannesburg set up a Tangible Landscape, which to my knowledge is the first in Africa and possibly the first in a secondary school (most are at universities). I've been fascinated by these ever since I saw videos of them in action.  So, when Samantha Jones and the rest of the St Johns geography department (Bridget Fleming-HOD, Brandon Louw and Keith Arlow), expressed a wish to have one in the department, Sam's husband, Matt, went ahead and built a frame. That was all the motivation I needed. Peter Henning, the IT Manager at St Johns, gathered an old i5 PC with 4GB RAM (running Ubuntu Linux) and some old monitors and a projector and ordered a Microsoft XBox Kinect. While Peter and Matt set up the infrastructure I set up up the software, mainly consisting of the Open Source GRASS GIS and the module that takes the point clouds coming in from the Kinect and converts them to raster digital elevation models (DEMs).

Mass reprojection of h5 files using gdal and bash tricks

Posted by: Gavin Fleming | in Uncategorised | 2 years, 9 months ago | Comments

I recently got hold of h5 files (Hierarchical Data Format (HDF)) and I tried to load them into QGIS and they were drawing in the wrong places.This was because they were not georeferenced. I set out to georeference them using GDAL. Since I was dealing with many h5 files I searched for an automated way to georeference them and could not find one complete solution hence I decided to do it myself with the help of Tim Sutton.

Template by Blacktie Mezzanine theme by CodingHouse