3

I've got the Atlas function down (AWESOME!) and am generating maps for every feature.

What I need to do now is generate maps for groups of features based on a shared attribute.

fid | name | group
01  | a    | 1
02  | b    | 1
03  | c    | 2
04  | d    | 2

Essentially, two maps, one with "zoom to extent" for all group 1 features, and the other zoomed to extent for all group 2 features.

Is possible?

2

2 Answers 2

3

This may not be the most elegant, but here's the steps I took to solve this:

  1. Create a new multi-polygon layer with "Name" attribute.
  2. Draw bounding boxes around the groups of features and name it after the group (Automated with tool: minimum bounding geometry)
  3. Set the Atlas to "Hidden Coverage Layer" using the bounding layer just created.
  4. To highlight the features (bonus!): Set the atlas pagename to the Name attribute of the bounding box layer, then set the style of the features layer "Rule Based" and "Group" = $atlas_pagename
2
  • 3
    See if the concave hull and convex hull algorithms accept a grouping parameter. If they do you can use one of them instead of drawing bounding boxes manually.
    – csk
    Nov 6, 2019 at 5:28
  • Those don't but the tool: minimum bounding geometry does. Man I LOVE QGIS!
    – user94812
    Nov 6, 2019 at 13:02
1

I had a similar problem and I did an other way:

1- In Vector ‣ Geoprocessing Tools, use the dissolve function

In your case you will select the common attributes as your group.

This will create a new layer, e.g. 'dissolve_layer', with a single polygon by group.

more info here : https://docs.qgis.org/3.4/en/docs/user_manual/processing_algs/qgis/vectorgeometry.html?highlight=regrouper#dissolve

2 - Set your atlas : using the new layer'dissolve_layer' as coverage layer and hidde it, and set style to your original layer such as "group" =attribute (@atlas_feature, 'group')

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.