14

The way I see it, if two features to be labeled are too close to one another, then there are essentially three options. By default QGIS will omit one of the labels. If I enable the “show all labels” property, either for the layer in question or for the global labeling settings, then it will print overlapping labels.

Unless I have assigned data columns to store label positions, then I can resolve the conflict by moving one of the labels to a better position.

My problem is that I consider neither omitted labels nor overlapping labels an adequate solution. Is there a way to systematically iterate over all conflicting labels, giving me a chance to manually resolve those conflicts by moving one of the labels, or perhaps by hiding one of them?

As the placement seems to depend on scale and map extent, this might be specific to a given map in the print composer, I guess.

2
  • 4
    That would be a great feature request.
    – Victor
    Commented Dec 9, 2016 at 10:19
  • 3
    Feature request created: hub.qgis.org/issues/15966
    – MvG
    Commented Dec 10, 2016 at 11:08

3 Answers 3

1

The best solution I've found when the locations are too close and you've exhausted the basic QGIS label placement options is to export your map as SVG from print composer and move the labels in another program. Be sure to select the option "Render map labels as outlines". "Export map layers as svg groups" is optional if you are only concerned about the labels.

enter image description here

Open the SVG in either Adobe Illustrator (expensive, but good) or Inkscape (free, and decent). Within one of these programs, you can select and move the labels individually. You may need to "ungroup" the labels from each other. This is also a useful way of offsetting overlapping point symbols.

0

Not exactly what you're looking for, but for polygon layers you could make a custom expression like this answer to estimate if a label will fit within the polygon at a certain scale. You could then use that expression to select features with likely conflicts.

0

If you haven't used the "Rule-Based Labeling" yet then I really suggest trying this labeling property out. There is also a "Rule-Based Symbology" that works amazingly. You can basically go in and query your layers to look and function however you want. With the rule-based labeling you can get much more specific and detailed on the look of each layer.

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