How to Vectorize a Map
7 min read
Maps are the densest thing people routinely vectorize: hair-thin roads, dozens of distinct fills, and small type everywhere. They reward patience with the source and produce large files, and both of those facts are worth knowing before you start.
The usual reasons are large-format printing — a wayfinding board or an exhibition panel where a raster would visibly soften — and the need to recolour or restyle a map you only have as an image.
Check whether vector data already exists first
This is worth thirty seconds before any of the rest. If the map is of a real place, OpenStreetMap data covers it, and exporting real vector data from QGIS gives you something categorically better than any trace: correct topology, real attributes, layers that mean something. Tracing an image of a map is the right answer only when the map itself is the artefact — a historical sheet, a stylised illustration, a site plan that exists nowhere else.
When that is the case, the rest of this guide applies.
Resolution is the whole game
A road drawn one pixel wide has no interior. The tracer finds regions and draws their boundaries, and a one-pixel line is a boundary with nothing inside it — it either disappears or comes back as a ragged thread. The single most effective thing you can do for a map trace is start from a larger source.
If the map is a scan, scan at 600 dpi rather than 300. If it is a screenshot, take it on a high-density display or at a zoom level where the thin features are at least three pixels wide. The extra pixels cost nothing and are the difference between minor roads surviving and not.
Convert in tiles if the sheet is large
Plan caps are measured in megapixels — 2 on the free tier, 5 on Lite, 8 on Pro and above — and a 600 dpi scan of an A1 sheet is far above any of them. Rather than downscaling, which throws away exactly the fine detail you scanned for, cut the sheet into overlapping tiles, convert each, and reassemble in your editor.
Overlap the tiles by a centimetre or so of real map. Aligning them afterwards is much easier with shared features to match on than with butt joints, and paths that cross a tile boundary need to be rejoined by hand either way.
Layers come from colour, so plan around colour
Water, parkland, built-up areas and road classes are usually distinguished by fill colour, and the trace produces one set of shapes per distinct colour. Selecting by fill colour in your editor and moving each set to its own layer is quick, and it is what turns a flat trace into something you can restyle.
This works well when the source uses genuinely distinct colours and badly when it uses close ones — two shades of green for park and forest that differ by 4% will merge, or will separate unpredictably along their boundary. Where you control the source, increase the colour separation before converting.
Expect a large file, and prune deliberately
A city map traced at useful resolution can carry tens of thousands of nodes. That is not a fault — the information is genuinely there — but it will make an editor sluggish and a web page slow.
Prune with a purpose rather than uniformly. Simplifying the coastline by 30% is usually invisible; simplifying road junctions by the same amount visibly breaks the network. Most editors let you simplify a selection, so do it layer by layer.
Step by step
- 01
Check for existing vector data
If the map is of a real place, OpenStreetMap via QGIS gives you real vector data with real attributes. Trace only when the map itself is the artefact.
- 02
Get the highest resolution you can
600 dpi for a scan. Thin roads need to be at least three pixels wide or they will not survive the trace.
- 03
Tile large sheets
Cut anything above your plan's megapixel cap into overlapping tiles rather than downscaling. Overlap by a centimetre of real map.
- 04
Convert each tile to SVG
Upload and download. On Pro and above you can send the tiles as one batch.
- 05
Separate layers by fill colour and prune
Select by colour to build layers, then simplify each layer according to what it is — coastlines tolerate it, junctions do not.
Common problems
- Minor roads disappeared
- They were one pixel wide in the source, which gives the tracer no region to find. Start from a higher-resolution scan or a larger screenshot.
- Two different-coloured areas merged into one
- Their colours were too close for the merge step to keep apart. Increase the colour separation in the raster before converting.
- The upload was refused for being too large
- It is over your plan's megapixel cap — 2 MP free, 3 MP on Lite, 5 MP on Pro and above; the browser shrinks such files to the cap automatically. If thin scanned features matter, tile the sheet instead of relying on that shrink: resampling does lose fine detail.
- The SVG is huge and my editor is crawling
- Tens of thousands of nodes is normal for a dense map. Simplify layer by layer — coastlines and parkland take heavy simplification invisibly, road networks do not.
Frequently asked questions
- Should I trace a map or export vector data?
- Export real data whenever it exists. OpenStreetMap through QGIS gives correct topology and real attributes, which no trace of an image can. Trace when the map itself is the artefact — a historical sheet, an illustration, a one-off site plan.
- How do I handle a map bigger than the megapixel limit?
- Cut it into overlapping tiles, convert each, and reassemble. Downscaling to fit destroys the thin roads and small type that made the high resolution worth having.
- Will place names be readable?
- They trace as shapes that look like the original type, which prints correctly but is not text. For a map that needs searchable or restylable labels, OCR them separately or re-set them by hand.
- Can I get the layers separated automatically?
- Not as named layers, but the shapes come out grouped by colour, and selecting by fill colour in any editor turns that into layers in a few clicks. It works well when the source uses clearly distinct colours.
Related guides
- How to Vectorize Blueprints and Technical Drawings — Convert scanned drawings and schematics into editable line work without inheriting the scanner's errors.
- How to Vectorize a Flyer or Poster for Large Format — Rescue a flat design for A1 and larger without the soft edges — and know which parts not to convert.
- How to Vectorize an Icon — Turn a pixel icon into a crisp, single-weight vector that scales from a 16px favicon to an app tile.