Skip to content
219+ plans · available now · commercial license
Guide

Create a city map

Creating a city map means turning open geodata into a readable map: choose the extent, grade the streets by importance, label what matters and leave out the rest. With QGIS and OpenStreetMap it costs nothing but time – with a ready-made vector base you start at step four.

QGIS · OpenStreetMap
6 steps · free route available

Decision

Three routes – which one fits you?

Route Time Cost Control When it makes sense
Online generator Minutes free to moderate limited A one-off with no design ambition. Read the licence terms first – they vary a great deal.
Yourself in QGIS Hours to days time only complete When the map has to look exactly the way you picture it – or when you want to learn the route once and for all.
A ready-made vector plan as the base Minutes a few euros complete from step 4 on When the city is in the catalogue and time is short: sourcing and preparing the data falls away, but you still do the design yourself.

Guide

Draw a city map – in six steps

  1. 01

    Decide on the extent and the purpose

    A city map for a poster shows something different from one for a brochure. Decide first how large the map will be and from what distance it will be read – how much extent fits and how small the type may go both follow from that.

  2. 02

    Get the geodata

    OpenStreetMap covers streets, buildings, green space, water and rail worldwide. Ready-made extracts come from Geofabrik, targeted queries from Overpass. For Germany, the open base geodata of the federal states comes on top.

  3. 03

    Load into QGIS and clip to the extent

    Each category as its own layer: streets, buildings, water, green, rail. Clip before you style, not after – a map holding half of Bavaria in memory redraws on every change.

  4. 04

    Grade the streets by importance

    This is the step that decides legibility. Motorway, main road, side street and footpath need different line weights – in OpenStreetMap the classification sits in the “highway” field and can be used directly as a styling rule.

  5. 05

    Label – and leave out

    Not every street gets a name. Label the ones people navigate by. Labels run along the line, not across it, and never overlap: in QGIS the collision detection handles that once you switch it on.

  6. 06

    Scale, legend, attribution and export

    A scale bar rather than a scale ratio, a north arrow, a short legend and the attribution for the map data. Export as vector PDF or SVG – then the map stays crisp from postcard to poster.

Craft

What makes a city map legible

Nobody fails on the data any more. Home-made city maps fail on five things, and all five are decisions, not tool questions.

01

Hierarchy before completeness

A city map on which every street looks the same is unreadable – even when it is complete. Three or four line-weight levels are enough for a city of any size.

02

Leaving out is design

The commonest mistake in a home-made city map is keeping everything the data contains. House numbers, fences, individual trees and car park areas belong out at most scales.

03

Few colours, clearly separated

Water blue, green space green, everything else in greys – nearly every city map gets by on that. Colour is a signal; when everything is coloured, nothing signals any more.

04

Type is part of the map, not on top of it

Labelling follows the geometry: street names run with the street, area names sit inside the area. A light halo around the type keeps it readable without erasing the lines beneath.

05

One scale, one level of detail

A map showing every building in the centre and only main roads at the edge looks unfinished. Either the detail is even throughout – or the transition is deliberately designed and visibly meant.

What it is good for

City map, figure-ground plan, site plan, location map

Four maps of the same place, four different purposes. Build the wrong type and you do the work twice.

Type What it shows For what
City map this page A readable map of an urban area with street hierarchy and labelling Orientation, brochure, poster
Schwarzplan (figure-ground plan) Buildings only, black on white – figure and ground Urban design, analysis
Lageplan (site plan) One plot with its surroundings, true to scale Planning, building application
Location map A simplified route to a destination; may distort Invitation, letterhead, legal notice

Legal position

Which data you may use

You may use OpenStreetMap, commercially too, with the attribution “© OpenStreetMap contributors”. You may not use a screenshot from Google Maps as your base – their terms allow embedding the map, not freely reusing an extent in your own material.

On top of that come the open base geodata of the German federal states, usually under Datenlizenz Deutschland with a prescribed attribution. If you pass the data on as a dataset rather than as a finished map, OpenStreetMap additionally requires you to observe the ODbL.

This overview describes common practice and is not legal advice.

Shortcut

Start at step four

Steps two and three – fetching, loading, clipping the data – are the dull ones. A ready-made vector plan brings them along: streets, buildings, water, green and rail on separate layers, true to scale and already cropped. You still do the design yourself, and that is the part worth doing.

All Plans
217 plans available
Aachen Germany 10 €
Amsterdam Netherlands 10 €
Antwerp Belgium 0 €
Apeldoorn Netherlands 15 €
Arnhem Netherlands 15 €
Aschaffenburg Germany 10 €
Athens Greece 0 €
Atlanta United States of America 0 €
Augsburg Germany 10 €
Backnang Germany 10 €
Bad Segeberg Germany 10 €
Barcelona Spain 0 €
Basel – Weil am Rhein – Lörrach Germany 15 €
Bath England 10 €
Bautzen Germany 10 €
Beirut Lebanon 15 €
Belgrad Serbia 0 €
Bengaluru India 0 €
Bensheim Germany 10 €
Berlin Germany 10 €
Bern Switzerland 10 €
Bietigheim-Bissingen Germany 10 €
Bilbao Spain 10 €
Bologna Italy 10 €
Bonn Germany 10 €
Bordeaux France 0 €
Boston United States of America 0 €
Bozen Italy 10 €
Bratislava Slovakia 10 €
Brașov Romania 10 €
Breda Netherlands 10 €
Bregenz Austria 10 €
Bremen Germany 10 €
Bremerhaven Germany 10 €
Brno Czech Republic 10 €
Broons France 10 €
Bruges Belgium 15 €
Brussels Belgium 10 €
Budapest Hungary 0 €
Budweis Czech Republic 10 €
Bukarest Zentrum Romania 0 €
Cagliari Italy 10 €
Cambridge United Kingdom of Great Britain 0 €
Catania Italy 10 €
Chemnitz Germany 10 €
Chicago United States of America 0 €
Cluj-Napoca Romania 10 €
Coblenz Germany 10 €
Coburg Germany 10 €
Cologne Germany 15 €
Copenhagen Denmark 10 €
Cottbus Germany 10 €
Dallas United States of America 0 €
Darmstadt Germany 10 €
Den Haag, Delft, Leiden Netherlands 10 €
Dijon France 10 €
Dolomites – Cortina d’Ampezzo Italy 10 €
Donostia-San Sebastián Spain 10 €
Dortmund Germany 10 €
Dresden Germany 10 €
Dublin Ireland 0 €
Düsseldorf Germany 15 €
Edinburgh United Kingdom of Great Britain 0 €
Eindhoven Netherlands 10 €
Eisenstadt – Wiener Neustadt Austria 10 €
Erlangen Germany 10 €
Flensburg Germany 10 €
Florence Italy 0 €
Frankfurt (Oder) Germany 10 €
Frankfurt on the Main Germany 15 €
Freetown Sierra Leone 0 €
Freiburg im Breisgau Germany 10 €
Freising Germany 10 €
Fribourg Switzerland 10 €
Gdansk Poland 10 €
Geneva Switzerland 0 €
Genova Italy 10 €
Gießen Germany 10 €
Glasgow United Kingdom of Great Britain 0 €
Goteborg Sweden 10 €
Graz Austria 10 €
Groningen Netherlands 10 €
Haarlem Netherlands 10 €
Halle (Saale) Germany 10 €
Hamburg Germany 10 €
Hamm – Soest Germany 10 €
Hannover Germany 10 €
Heidelberg Germany 10 €
Heilbronn Germany 15 €
Helsinki Finland 0 €
Herford – Bad Salzuflen Germany 10 €
Hildesheim Germany 10 €
Hollywood – LA United States of America 0 €
Hong Kong Hong Kong 0 €
Hradec Kralove Czech Republic 10 €
Innsbruck Austria 10 €
Island of Rügen Germany 10 €
Istanbul Turkey 0 €
Jerusalem Israel 0 €
Kaiserslautern Germany 10 €
Karlovy Vary Czech Republic 10 €
Karlsruhe Germany 10 €
Kassel Germany 10 €
Kathmandu Nepal 0 €
Katowice Poland 10 €
Klagenfurt Austria 10 €
Krakow Poland 10 €
Landshut Germany 10 €
Lausanne Switzerland 10 €
Le Mans France 10 €
Leipzig Germany 10 €
Leonberg Germany 10 €
Liberec Czech Republic 10 €
Lille France 10 €
Lindau (Lake Constance) Germany 10 €
Lisbon Portugal 0 €
Liverpool United Kingdom of Great Britain 0 €
Ljubljana Slovenia 0 €
London United Kingdom of Great Britain 10 €
Lubeck Germany 10 €
Lucerne Switzerland 15 €
Luxembourg Luxembourg 10 €
Lyon France 10 €
Maastricht Netherlands 10 €
Madrid Spain 0 €
Mainz – Wiesbaden Germany 10 €
Malmö Sweden 0 €
Manila Philippines 0 €
Marburg Germany 10 €
Marseille France 10 €
Meran Italy 10 €
Metz France 10 €
Miami United States of America 0 €
Milan Italy 10 €
Minden – Bad Oeynhausen Germany 10 €
Minsk Belarus 10 €
Montpellier – Lunel France 10 €
Moscow Russia 0 €
Mulhouse France 10 €
Mumbai India 0 €
Munich Germany 15 €
Nancy France 10 €
Nantes France 10 €
Napoli Italy 15 €
New York United States of America 0 €
Nuremberg Germany 10 €
Oldenburg Germany 10 €
Olomouc Czech Republic 10 €
Oslo Norway 10 €
Osnabrück Germany 10 €
Paderborn Germany 10 €
Palermo Italy 10 €
Pardubice Czech Republic 10 €
Paris France 15 €
Passau Germany 10 €
Pfaffenhofen an der Ilm Germany 10 €
Potsdam Germany 15 €
Poznań Poland 10 €
Prague Czech Republic 10 €
Radolfzell Germany 10 €
Regensburg Germany 10 €
Reykjavik Iceland 0 €
Riga Latvia 0 €
Rome Italy 0 €
Rotterdam Netherlands 10 €
Rudolstadt – Saalfeld – Bad Blankenburg Germany 10 €
Saarbrucken Germany 10 €
Saint Tropez, Sainte Maxime France 10 €
Salzburg Austria 10 €
San Francisco United States of America 0 €
Sankt Petersburg Russia 10 €
Sarajevo Bosnia and Herzegovina 0 €
Schleswig Eckernförde Rendsburg Germany 15 €
Schwerin Germany 10 €
Seattle United States of America 0 €
Siegen Olpe Germany 10 €
Singapore Singapur 0 €
Sofia Bulgaria 0 €
Split Croatia 10 €
St. Poelten Austria 10 €
Starnberg Germany 10 €
Stockholm Sweden 10 €
Strasbourg Germany 10 €
Stuttgart Germany 10 €
Sylt Germany 10 €
Szczecin Poland 10 €
São Paulo Brazil 0 €
Tallinn Estonia 10 €
Tampere Finland 10 €
Tel Aviv Israel 10 €
Tokyo Japan 0 €
Toulouse France 10 €
Trondheim Norway 10 €
Târgu Mureș Romania 10 €
Tübingen – Reutlingen Germany 10 €
Utrecht Netherlands 10 €
Valencia Centre Spain 0 €
Vancouver Canada 0 €
Venice Italy 0 €
Venlo Netherlands 10 €
Verona Italy 0 €
Vienna Austria 10 €
Vilnius Lithuania 10 €
Warsaw Poland 15 €
Washington D.C. United States of America 0 €
Weimar Germany 10 €
Wismar Germany 10 €
Wolfsburg Germany 0 €
Worms Germany 10 €
Wroclaw Poland 10 €
Würzburg Germany 10 €
Zagreb Croatia 0 €
Zakopane Poland 10 €
Zlín Czech Republic 10 €
Zug Switzerland 15 €
Zürich Winterthur Switzerland 15 €
Ústí nad Labem Czech Republic 10 €

FAQ

Creating a city map – questions and answers

How do I create a city map? +
In six steps: decide the extent and purpose, get geodata from OpenStreetMap, load it into QGIS and clip it, grade the streets by importance, label and leave out, then export as a vector PDF with a scale bar and attribution. To skip the data work, take a ready-made vector plan as the base and start at step four.
Can I create a city map for free? +
Yes. OpenStreetMap data and QGIS are free, and together they are enough for a full city map. What it costs is time: several hours is realistic for your first one, most of it on design and labelling rather than on the data.
Which software do I need for a city map? +
QGIS for the data work – free and built for exactly this. For the fine design most people then move on to Illustrator, Affinity Designer or Inkscape. Starting from a ready-made vector base lets you skip the data stage and work straight in the graphics program.
May I use a city map I made myself commercially? +
Based on OpenStreetMap, yes, commercially too – attribution “© OpenStreetMap contributors” is required. What is not permitted is using a screenshot from Google Maps or another map service as the base: their terms allow embedding the map, not freely reusing an extent.
What is the difference between a city map and a figure-ground plan? +
A city map is made to be read: streets are graded by importance, the names that matter are shown, colour separates water from green. A figure-ground plan (Schwarzplan) shows only the buildings as black areas on white and serves urban analysis – it is meant to show built structure, not the way.
At what scale is a city map made? +
For a city-centre extent 1:5000 to 1:10000 is usual; for a whole urban area 1:20000 to 1:50000. What matters is not the number but the relation between output size and reading distance: a poster takes more extent than a brochure page.
?