Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I imported some OSM data. I then label the lines (roads) with their "name" field using the new label layering settings dialog box. When I zoom to different scale levels I find that while all the lines remain, some of the labels appear / disappear. In any particular zoom level if I adjust the size of the text of the labels, more or less labels show (i.e. when I make the text larger less labels show and when I make the text smaller more labels show). While in general this is good because it creates less clutter and keeps labels from overlapping, etc. there are times when I want to see some of these labels and I can't unless I adjust the text size or zoom in further. I also can't find any control over this either.

So, I guess I am wondering if there is a way to force all the labels to show no matter what my text size or scale is. Another option would be a way to turn on a particular label that I wanted. In fact the latter option would be best.

Thanks in advance for any help with this. David

share|improve this question

Using QGIS 1.8 Lisboa, you can make all labels appear all of the time. In the labelling dialog (from the button on the toolbar) there is an advanced tab, scroll down to Engine Settings and turn on Label All Even If Collisions.

The above is useful if you are going to position by hand some or all of the labels.

To position labels by hand, you need to have fields in the attribute table for x-label and y-label, the simplest way is to set them as Float fields with 10 units and 10 precision. Then you can activite the label positioning buttons on the toolbar and position labels as you please.

The more likely scenario is that you want to control visibility by zoom level. The settings for that are there as well.

For all of this, choose what zoom level (extent of map) you want to output to first, then do the work. A scale of 100 000 with about 300 labels at A3 at a font of 6 pts is just doable if they are equally distributed.

share|improve this answer
Hi Willy, This is great. Thanks for your thorough explanation. I think through what you said I have been able to figure out the problem. Perhaps it is a bug or known limitation in QGIS. This is basically that what you said works unless one uses curved placement in the advanced tab of the labeling tool. Once I switched to horizontal or parallel placement I got the expected results as you explain above. Too bad because as a result of this one can not combine curved placement and at the same time force all labels to be shown. – David Jan 11 '13 at 16:26

An updated way to do this (at least in 2.6.0 Brighton) is to:

Go to Layer Properties>Labels>Rendering and check the box that says "Show all labels for this layer (including colliding labels)"

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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