Skip to content

Printing Map Part I: Map design with QGIS

August 25, 2011

I had a task to print the whole map in various zoom levels. Solved few problems while I was on it and would like to share them with you.  First thing to do was build a nice looking map.

Quite a while ago, on GIS.StackExchange I’ve posted a question about beautiful maps with Qgis.  There was only one answer, and while it had some very useful information, it seems there is no step by step guide with useful tips and tricks.

The result I’ve got has been somewhat satisfying and it didn’t take long (around one workday, that is – about 8 hours) thus I thought it is good idea to share the result and steps I made to do this. Note that it has been done a long time ago (in Qgis1.6 days), so Old Symbology was default and I did not use New Symbology where I did not need it.

First thing to do is to decide map scales that are going to be used. Then add files for the working scale and when you’re happy with its design, zoom to the next scale, add files for it and set scale dependant rendering. If there is something that you don’t wish to have on larger zoom, add scale dependant rendering for it before adding new layers. For example, for roads I always have at least two layers — extra layer with large transperancy for roads that I don’t want to give full focus on current scale yet, but they will be used in detail in the next scale. Because transparent layer is not needed in any of  the fallowing zoom levels I will have scale dependant rendering for it.

I wanted to have a light-looking map, however informative. Thus, for visualization, I have narrowed roads down to three classes (not counting transparent ones) based on The Smallest Effective Difference (link on stackexchange is broken..), while for routing, of course, all road classes remain as they are. All colors were chosen to be  mild with main focus on roads.

I will present first two scales , others are just doing the same thing over again with some tries on what looks the best.  All layers will be described in Painters Algorithm order.

Full Zoom Scale

For this layer I’ve added:

  • Country boundaries.
    There is no need for fill as it will be completely covered with Region data. For border I lightened its default solid black a little so I wouldn’t emphasise it too much (main focus is on roads after all):

  • Region boundaries.
    This time I had a (very)  slightly darkened fill, just to drop out very bright while color. Border again slightly lightened black:

  • Forests (filtered largest areas).
    I have split filtered forests into two groups, one darker (largets woods) and one lighter. This time there is no border at all (it did not look good) and for fill style I have chosen Dence4, so it wouldn’t stand out at all:
  • Water areas and Water lines  (largest).
    Just light blue with simple fill, same color for both:
  • Roads (three largest road types — International Roads and Major Roads and Other Major Roads)
    For International Roads I’ve chosen dark orange, so they would stand out the most. There are two Symbol layers for it — Border with Pen width 1 and darker orange and Fill with pen width 0.26 and lighter orange. Changing Join and Cap styles didn’t seem to make a huge difference:

    For this layer, International roads were the only roads that I would add captions. It was color with green buffer. By the way, buffer makes all captions look much better:

    Other two layers were same design, light yellow for border and even lighter yellow for fill, bot a bit smaller than International roads:
  • Settlement captions (Capital and largest cities)
    Just captions for filtered layer, nothing special. In my MAPNIK solution I also had points, and I must say, it looks much better with them.

Final result of Full Zoom Scale looks like this:

4x Zoom Scale

For next scale I zoomed 4 times from full zoom.

In addition to previously added layers,  for this layer I’ve added:

  • Larger forest areas.
    They have been inserted next to full zoom forest layers, so they wouldn’t cover other data. Then added scale dependant rendering for them. Style was completely same as for the one before.
  • Smaller Water lines and Water areas.
    Just like forest layer, water layers have been inserted next to larger water layers with style was completely same as for the one before and scale dependant rendering.
  • Road labels for Major Roads and Other Major Roads.
    Black font with mild yellow buffer, a bit smaller from international road. Note that they have been set to have maximum scale on which they would be visible:

     Also, different from international road, caption for Major roads has been set to be on line:
  • Local roads.
    They have been added with the same color as the Major roads, but with transperancy. On other zoom level I would have transperancy removed.
  • Settlement captions of smaller cities.
    Again just captions for filtered layer.
  • Urban areas.
    In this layer I have also included urband areas with a very light grey fill.

Final result of 4x Zoom Scale looks like this:

12 Comments leave one →
  1. pablotcarreira permalink
    August 25, 2011 20:29

    Nice design!

  2. Pedro Mendes permalink
    August 27, 2011 20:58

    You gotta love QGIS.. 🙂

  3. February 6, 2012 04:27

    Dear Mike,
    I want to place mutiple lables of road name on a road at specified distance (like lable of road 221, E28, or 220 on your 4x zoom scale map) and tried to immitate your settings in the Layer Labling Settings window but I couldn’t achieve it. Do you have any idea of what I’ve done wrong or missing?
    (I am using Qgis 1.7.3 on Windows XP and new to GIS, please forgive me if there is any mistake)
    Thank you very much!

      • February 6, 2012 10:27

        You must have misunderstood my question. I don’t want to make multi-line labels. What I want is placing muptiple labels of road name on the same road if the road is long. Ex: the road E28 in your image of 4x Zoom Scale has 5 labels with the same content “E28” distributed along its length and I want to know how to achieve that.
        Thanks for your fast reply!

    • February 6, 2012 10:49

      Ah, I see, unfortunately I didn’t do anything to achieve that. It has been done automatically for me, because it’s not one road, it is actually cut into smaller pieces (e.g. if I would filter roads with names “E28”, I would get ~1000 entries).

      At the moment I don’t really know how to do that, but you could try to play with the Vector tab in Qgis (fTools) to cut your roads in smaller pieces.

      Most probably you could do something with python but I can’t give you exact information on how to do that and if you’re not a software developer, it could be difficult..

      In any case, I don’t think there is straight way to do this, you would still need a workaround, however you could ask your question on (I think the question is really good actually) those guys will probably tell you a much better answer than I could.


  1. Printing Map Part I: Map design with QGIS (via MikeOnGIS) « GIS, Tecnologias e Outras Coisas
  2. Printing Map Part II: Map tiles with QGIS « MikeOnGIS

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: