I have a geopackage of ordnance survey background data (field boundaries, rivers, roads, etc). I won't be doing any analysis on this data it will purely be used as a background / basemap.

My problem is that it's very detailed and quite slow to render in QGIS. Is there a way of speeding up the rendering somehow? I don't know anything about creating vector tiles but is that an option?

  • 1
    could you set it up as a WMS server and go from there, or apply a scale filter to the data's style – Ian Turton Feb 13 at 11:27
  • How would I set it up as a WMS? Would that require PostGIS / Geoserver? – TeddyTedTed Feb 13 at 11:38
  • yes it would need at least geoserver – Ian Turton Feb 13 at 11:43
  • 1
    It's pretty easy and can run locally - all you need is the platform independent binary, and the SLD files the OS provide – Ian Turton Feb 13 at 13:12
  • 1
    You might look at: 1. creating spatial indexes, 2. creating generalized versions for display, 3. the options for rendering of each layer (simplification, caching, multi-thread), 4. taking snapping and labeling off it if you can, 5. matching it's CRS to your project's CRS, 6 trying scale dependent rendering if you change scales a lot, 7. using simplified symbology if possible, etc. along with the usual storing the geopackage on a local hard drive. – johns Feb 13 at 14:27

You could move the data into PostgreSQL/PostGIS.

This would allow you to make use of spatial indexes on the data and feature simplification in the database.

  • 1
    I second this, I always store my large OS datasets in PostgreSQL and the performance is normally much better. You could also consider setting layer scale visibility so it's not drawing at unneeded scales (i.e. do you need it at GB level?) – JClarkson Feb 13 at 15:13

Setting up a WMS for vector layers may be a bit overkill especially if you do not have experience setting up a GIS server, I'd recommend trying these two options first:

  1. For each vector layer under Properties>Rendering set a Scale Dependent Visibility min/max value. This will turn off certain layers that have many features at zoomed out scales. Large vector layers scaled properly should draw fast still.

  2. Under Settings>Options>Rendering, enable the Render layers in parallel using many CPU option and bump up the max cores value from 1 to 2 or 3.


If your data is OS Zoomstack then you can run a docker image I have built with GeoServer and Zoomstack already installed.

docker run -p 3080:8080 ianturton/geoserver-2.16-jdk-8-zoomstack

Then add http://localhost:3080/geoserver/wms to QGis

enter image description here

Add the layer zoomstack and proceed as normal.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.