The logo for QGIS 3

Making digital maps at Home


An update at 2019 and QGIS 3.10


QGIS 3 replaces QGIS 2 that was described in the article reproduced above from 2014. By October 2019, QGIS version 3.8 was on general release and QGIS 3.10 was expected by November 2019.

In addition, most of the issues noted in the 2014 summary above have now been resolved, and many new features have been added.

At the time of writing, (October, 2019) it is worth repeating that sufficient free resources have become available to allow the independent researcher to make use of a Geographic Information System (GIS) as good as any commercial system, and which avoids paying a cost of many thousands of pounds in license and maintenance fees.


QGIS is an Open Source program, and since its early days it has made use of other Open Source programs which have already been developed.

GDAL and OGR were early programs which were written by enthusiasts with the aim of being able to read and write to as many spatial file formats as possible. GDAL was developed to read vector files and OGR to read raster files. In addition these libraries aimed to be able to update these files, not just read them. Eventually these two programs were merged and are now just referred to as GDAL.

GDALis now at Version 3.x, and most of the MAPINFO file problems have been resolved.

It became clear that the underlying interface with the operating system of the user's computer could also be standardised by using a program called QT. QT produces and manages all the Windows needed by QGIS.

QGIS is renowned for allowing individuals to develop "plug-ins" to carry out specialist functions. These plug-ins are dveloped in a language called "PYTHON", which is much easier to learn than the standard programming language of QGIS, which is developed in "C++". QGIS 2 was built using PYTHON 2.7 and QT 4

QGIS 3 had to be developed in order to take advantage of the improvements in QT 5 and PYTHON 3.xx.

Nyall Dawson summarised these issues as follows:-
"Version 3.0 will introduce the first PyQGIS API break since 2013. An API break like this is required to move QGIS to newer libraries such as Qt 5 and Python 3, and allows the development team the flexibility to tackle long-standing issues and limitations which cannot be fixed using the 2.x API. Unfortunately, the side effect of this API break is that the scripts and plugins which you use in QGIS 2.x will no longer work when QGIS 3.0 is released!"

After a traumatic change such as from Version 2 to Version 3, there are still many issues which which can cause problems in other less fundamental libraries. When these libraries are updated, it can cause issues with QGIS. For example the underlying handling of Coordinate Refence Systems is handled by a program called PROJ, and GDAL in turn, relies upon PROJ for some of its functions. In November and December 2019, the new GDAL 3 required PROJ 6 for some of its new functions, and QGIS then on version 3.10 had to be adapted to accomodate these improvements.


The development from QGIS 2 to QGIS 3 took around two years. Much of this was to manage the changes to QT 5 and PYTHON 3.xx, but many new developments were introduced at the same time.

One of the new developments was in the area of 3D, an improvement which could only be made under QT 5. This development was at first put in place just to enable further development of 3D and this has continued through out Version 3 from 3.1 up to and beyond 3.10.

The styling system was completely re-written, as was the Processing system. Most algorithms were converted to the much more efficient C++ from PYTHON, and the Processing interface redrawn to make them easier to access and uniform in their usage.

All in all QGIS 3 is easier to use than QGIS 2, and has vastly more functionality. Some things may not be where you expect them to be, but once you figure it out it becomes more logical and has a host of advantages.

Sometimes the smallest of improvements produce the most useful results. My favourite is the ability to place labels automatically, but then to be able to tweak them manually. The smallest little move can make a label more meaningful.


For most of its life the shapefile, (.shp) was the default file format for storing vector files in QGIS. No doubt it will continue in use for many years yet. However, in QGIS 3 the new default format is called a geopackage, (.gpkg). A geopackage can contain within one file the whole specification of a vector thus eliminating the multiple formats needed to support every .shp file. One geopackage can, if wanted, also store a number of other vector files and even raster files, all within a single file package.


This BLOG by Kurt Menke describes some of his favourite new features of QGIS 3 in much more detail than I can manage:-

Kurt Menke's excellent blog on QGIS 3

Go to Digital Mapping Homepage This page originally produced by David Addy on 21st October 2019
Last Updated 26th December, 2019
Go to Main Home Page