On the map I have symbols (points) and labels for all municipalities with more than 10.000 inhabitants. Due to the fact that some parts of the desired area don't have municipalities with more than 10.000 inhabitants, I added another layer of municipalities from 1.000 to 10.000 inhabitants, where labels are displayed only if they don't overlap with municipalities with a higher number of inhabitants. So I filled the empty space of the map area with smaller villages.

The problem is that I don't know how to set the symbols in this layer to be displayed only when this labels are displayed. Now even if I have the labels set correctly, all symbols are displayed - even those whose labels are hidden.

Is it possible to achieve this?

I need to display symbols for values "1.000 - 10.000" only when labels for same values are displayed

My labels are OK, but symbols are displayed also for attributes without labels

Number of labels is OK, I just need to display symbols only when labels


1 Answer 1


You could use the "no symbol renderer" then put the symbol in the label itself. this way the symbol and label are controled by the label engine in one go.

just use an expression like this '●' || ' ' || "MunicipalitiesNameField" and play with the Placement setting to put the point at the position of the Municipalities (using "offset from point" with the middle right cadrant work well, you may need to set an X offset to be exactly at the right place) To get better result you may use HTML label formatting enter image description here

This solution work well but :

  • You are limited in symbol choice by what are available in your font
  • As there is only one label placement that will put the point as the right place the label placement are not optimized and you end with less label (but as you seem to mostly want to fill empty space this shouldn't be a problem for you)
  • thank you. It's a good idea but I doubt it will work well for me, because I'm using cartographic placement mode for labels (which works best for my purpose).
    – Filip
    Mar 4 at 17:32

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.