Probably a very basic question here, I want to change the draw order of a shapefile in QGIS, how can this be done?

As you can see in the picture below, only the "10" layer is shown, the others are below it... However, since this is a depth map of Skagerrak, I would like the other layers to show up on top of it.



QGIS >= 2.14 has built in support for specifying the rendering order. It's on the bottom of the "styles" tab under your layer properties.

enter image description here

  • this version is better since it also works inside one level for overlapping objects (in the case of points, you can think of trees, which you render as a forest, with the one on the top of the map covered by the one on the bottom) – Arthur May 21 '16 at 9:48
  • This is much better than using the Symbol levels (see other answer). This technique is persistent while using symbol levels requires manually updating each time you change the classification. – Cyrille Jan 23 '17 at 9:19

You could also change the Symbol levels of your shapefile to give each symbol layer higher priorities than others. You can access this from:

Layer Properties > Style > Advanced > Symbol levels

Symbol levels


Just tried to do something like this in Qgis 3.44, as expected the design has changed.

Select Layer, Properties, ->Symbology

On this dialog on the left hand side lurking about the Help and Style button there is 'Layer Rendering', expand it.

Towards the bottom on the screen there is a clickbox 'Control feature rendering order' enable it. Look in the far right side, there is a button labeled AZ with a down arrow, click it, then creates a popup called Define order, you can then use a variable or an expression to control the rendering

See attached image Qgis with modules pop up

  • This should have been submitted as an edit of the top-rated answer. It's the same thing except for the Styles tab having been renamed to Symbology. – Gabriel Jan 31 '19 at 14:27
  • Perhaps it should have been presented as you say, but it took me bout 15 mins to work out how to do it on the new version, I was trying to be helpful – Dave Jan 31 '19 at 18:41
  • I'm not trying to shoot you down. Take a look at the tour and read the Improve posts by editing or commenting section. One of the strengths of SE is that "[its] goal is to have the best answers to every question, so if you see questions or answers that can be improved, you can edit them." This makes finding valid answers easier. Submitting an edit to the above answer would help others who struggled with a version change like you to get the best information possible without having to scroll through several answers. It's a collaborative effort! – Gabriel Jan 31 '19 at 18:50

Just change feature blending to "Multiply" and you will see the borders of all features without having to change anything else.

I really cannot recommend to split the vector layer as you posted. That just does not scale at all.


Ill answer my own question, just found it! ;)

The (probably) easiest way is to simply split each layer to a different shape file. this is done in vector -> Data -> split vector layer (translated the menu options from Swedish..).

Easy Schmeasy!

  • 3
    I dont know if that is the easiest way, but it will definitely work! – ed.hank Mar 3 '16 at 17:56
  • you might want to accept any of the answers :) – Elena Wimmerwuchs Jun 4 '20 at 20:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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