2

I am using the atlas to generate a number of maps. Each map is of a particular zone represented by a multiline vector layer. I have another layer with point data and each map has an attribute table with the point data. It seems that I have just two choices:

  1. I can have all the points in the table
  2. or I can have just those points that are visible on the map

I want a third possibility: just those points associated with the zone. i.e. an option to filter points relative to the 'current' feature -- something like "zone" = atlas.zone_name.

1 Answer 1

3

It's possible in the current development version of QGIS (which will eventually become 2.6 - there's instructions on how to obtain development snapshots here), and a potential workaround is available in 2.4.

Both methods are done by checking the "Filter with" checkbox under the table's "item properties" tab, and entering a filter expression.

In development snapshots:

Assuming your point layer has a column called "zone", and the zone table has a column "zone_name", you would set the attribute table's filter to something like:

"zone" = attribute(  $atlasfeature ,'zone_name')

In QGIS 2.4

While you can't do a filter using attributes from the atlas layer, you can use a geographic filter from the table with the atlas. This may or may not work for your particular use case. The expression would be something like this:

intersects(  buffer ( $geometry , 10), $atlasgeometry )

This would show points within 10 map units of your atlas multiline layer.

3
  • This works, sort of. The real issue is that I need different tolerances for each map. Still it is much better than nothing. I suspect that the real problem is that the features are messy collection of lines rather than nice polygons. I probably should define another polygon layer which explicitly marks the boundary and use that as an invisible feature. Commented Jul 21, 2014 at 3:29
  • I have generated a set of polygons the actually fully enclose the areas and it now works well. When 2.6 comes out I will move to doing it using data based filters. Commented Jul 21, 2014 at 8:27
  • Great to hear! The data based filters in 2.6 will also be much faster than the geography based ones possible in 2.4.
    – ndawson
    Commented Jul 21, 2014 at 10:36

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.