7

I have a layer containing hundreds of line-features, which represent flight-tracks of different bird species. The different species are defined by a column species, containing for example values like species a, species b and so on.

What I want to achieve is to create multiple print-maps (pdf-exports), one for each species, using the same layout from the print-composer without duplicating the layout and the layer over and over again for each species.

The Species-name is supposed to occur as a map-title. The map extent has to stay the same in every map.

The solution may be something similar to the atlas-composer, but with a map-page for each species, not for a spatial location...

3 Answers 3

13

The QGIS Atlas does not require that each page in the series be spatially distinct. In the map frame's Item Properties, ensure that the option Controlled by Atlas is not checked.

It does seem, however, that you have a series of attribute values, as opposed to individual features, that you want an atlas for. This can still be accomplished using an atlas, but will require a separate layer. You can easily use a standalone table for this.

Here is an example with a lines layer Lines, which has a type attribute. By using the built-in tool List Unique Values, you can generate a standalone table on your type field

Lines on map

In your Atlas Settings, choose the standalone table as your coverage layer, with the type attribute as the page name.

atlas settings

On the Lines layer, change the symbology to Rule-based. Define a single rule, using the expression "type" = attribute(@atlas_feature, 'type')

Now you can generate your atlas!

atlas output

2
  • That's an awesome workaround! I always merged my geometries first, but the solution of using the table is much nicer!
    – Jens
    Sep 29, 2020 at 15:54
  • This works like a charme for me!
    – Bjoern
    Sep 30, 2020 at 6:52
5

I would create an atlas with a geom for each species (all geoms should be the same, a just a point in the same place or a boundary that defines the extent) and each geom should have an attribute with the species name. Set the atlas page name to be the atlas layer attribute. You can then use @atlas_pagename as the title and filename of the export of each page

Then set the symbology of the actual species layer to only show the data where the species name attribute matches the atlas pagename.

You can then export as a single atlas.

what might be easier if you don't have too many species is to manually create different layouts for each species and export all of them at once with the plugin Maps Printer.

0

been trying to replicate this in my project for 2 days now. @JoshC appreciate any suggestions.

  1. I have have my geometry layer with state boundary polygons.

  2. I have a plain data source table with language(s) population information on each of the polygons in the first layer.

  3. I have the unique languages listed in the standalone virtual table.

I have the Atlas set to use the same standalone table as the coverage layer.

When I try to set the data source (#2) layer's symbology the panel is blank. So I converted that layer to a geometry layer using fixed X,Y points. Now symbology is showing I am able to add the filter.

In the atlas, the 2 pages are for the 2 unique languages, that is perfect, but the map shows data from both languages. I want to filter to show only one unique language. Can't get the rule based filter to work.

Rule Based Filter

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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