I try to make a rule based labeling for my locations point layer which should be displayed, if a point intersects with the value residential in a (osm) layer called landuse. So I tried to do:


I'm already using the intersect() method elsewhere but in this case without success.

I'm aware of using a workaround but I still need the expression for another case so I would be very glad if someone could help me out here.

Before After
all names are visible only points intersecting with "residential" are labeled

Qgis 3.28

1 Answer 1


I think your current expression checks, whether your current geometry intersects with the geometry of the first entry of the landuse layer where fclass is residential.

Use the following instead:

overlay_intersects('landuse',filter:= fclass='residential')

It checks, whether your current geometry intersects with the layer landuse, with the additional filter for features with the value residential in the fclass-field.

enter image description here

  • awesome, thank you so much for the response AND the explanation. It helped a lot!
    – chribre
    Mar 7 at 14:02

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.