How to place labels under a vector layer?

How to place labels under a vector layer?

I want to place the labeling under a layer. In QGIS 2.2 apparently the label appears automatically at the top. Can someone help me. (see attachment)


Its not currently possible in QGIS. You'd need to export the map in a vector format (eg, export to pdf using a print composer) and then rearrange the layers in an illustration program such as Inkscape or illustrator.

Since labels are always drawn on top of all layers I would follow the approach MappaGnosis has proposed: move the label relative to the line.

To achieve this you can move each label manually by mouse (use move label tool):

Please note: The manual placement of a label is only good for one scale. If you change the scale of your map the label placement will change too.

Before you manually place labels you have to add fields (x,y,rotation) and make some settings. In this answer of workweek you find step-by-step instructions how to do this.

Ok, based on your German street name I'm guessing you're either in Germany, Austria or Switzerland. At least in Germany I know for sure that most, if not all federal states do offer their cadastral map (e.g. ALKIS) as online WMS services (although probably for a small yearly fee, it's about 50 € for Brandenburg).

You might want to use one of these as base layer to circumvent the whole labeling issue (and as a bonus always have up to date cadastral maps).

a possible solution :

  • export from the composer the map in a raster format, with only the labels being activated (everything else being hidden, including the line vector)
  • add the raster from the composer in your view, assign a transparent value (likely white)
  • Place this raster layer below the vector…

The problem may be that your raster file will require a high resolution in order to accurately display the font, especially if you have a lot of labels to work. You may also have some grey values to deal with in your raster.

Unfortunately I use QGIS with German language, but it should be similar in English. At the layer properties You can control labeling - see the picture below.