I would like to create a 2 second video zooming out of a map I made in QGIS.

It starts at 1:300 and ends at 1:4500.

At 24 frames a second I need to add 87.5 to the scale and export a png, then add another 87.5 to the scale and export a png and then repeat this 48 times.

How could I automate this?

I can add an image sequence to any non-linear video editor to convert it into other video formats afterwards.


Use the Atlas generation tool in the print composer. You will need a Atlas Coverage layer with 48 identical polygons for your view area on top each other. You can draw one polygon and copy paste it 47 times (ctrl c / ctrl v). Set the coverage layer and define the incremental filenames.

enter image description here

With the Field Calculator create an attribute called scale with a value for first record of 300 add 88 for every record to the scale column using this expression:

$rownum + 299 + (($rownum - 1) * 88)

I used integer with no decimals in this example

enter image description here

Then data bind the scale column to the Item property Scale of the map. The button then turns yellow.

enter image description here

In the Item properties of the map the property 'Controlled by atlas' will set the margin of the map.

Use the Export Atlas as images.. button

enter image description here

  • great answer - just tried this (in 2.18.3) and it works. It also works with POINT layers for coverage too. I'd add that you need to make sure you enable "controlled by atlas" / "fixed scale" mode (at least when using points) – Steven Kay Mar 8 '17 at 20:13

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.