As I understand you can generate Voronoi polygons in QGIS (2.18.2) using the following approaches;

  • Vector menu / Geometry tools /
  • OR
  • MMGIS plugin in

I also read here that you could use SAGA as well. I'm trying to create a shapefile of the UK postcode units using the Voronoi method as discussed here and wanted to understand what the difference was between the different algorithms given that I'll be running it across ~1.7 million points.

3 Answers 3


You forgot QGIS GRASS Processing function v.voronoi. Don't think SAGA has a Theissen implementation in the QGIS Processing version.

The result of the different providers is basically the same. But the input a bit different.

  • MMQGIS is the most simple, no buffering. Very fast
  • QGIS Geometry Tools has a parameter for buffering point resulting in a larger voronoid if you use it
  • GRASS v.voronoid being the most flexible will let you draw the buffer on the fly (select extent on canvas) and you can choose between lines and polygons as output.
  • As @PEL writes there is a implementation in Spatialite. You don't need to hook up to a spatialite DB. Just use a virtual layer with the code from the spatialite cookbook. It seems more advanced since you can set the tolerance of how close points must be to be used in a Voronoi calculation. From the cookbook:

    SELECT ST_DelaunayTriangulation(ST_Collect(geometry)) FROM italy_populated_places;


Into QGIS, when you use a Spatialite DB, you could can use Spatial SQL to create Voronoi polygon. Here an example from spatialite : Cookbook. I did not perform any comparison with your previous tool.


I found in practice the SAGA Thiessen polygons algorithm to be significantly faster on larger datasets (e.g. 1m points) compared to the GRASS GIS v.voronoi algorithm.

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.