The most beautiful maps are not behind us: they will be made today, by people who cared enough to make them. That sounds like you.

The best contemporary mapmakers taught themselves: Eleanor Lutz is a bio PhD and learned cartography on her own. Illustrator Mike Hall sketched maps in his notebook during shifts as a security guard, and now has an agent to handle his map deals. Alex McPhee studied geophysics, decided he needed to map his native Alberta, got some open source geo-software and made one of the best modern reference maps.

Mapmaking is like cooking: you pick what you like to eat, and improve by trial. You’ll over-salt a few dishes, ruin a few pans and come out a master. You just have to pick some Territory to commemorate.

Just draw one!

Cartography is making the infinite Territory legible to humans, which gives you many ways to get to the same point.

Find some Territory you care about: your yard, your street, your neighborhood, your town, your favorite patch of woods. Get a pencil and paper. Mark what you care about. You’re now a cartographer.

You can make a map with charcoals and an easel, a stick and some sand, a pencil and graph paper, a grid computing cluster, some hideously expensive software, some there’s-no-way-this-is-free software, a drone with a camera, a satellite with a radiometer, all ways to the same end. There’s no “correct” way to make a high-effort map. Many of the best cartographers draw by hand.

If you want some pointers on using the computer to make a cute map, read on.


I learned cartography at close range from Daniel Huffman. if possible close this tab, get a desk next to a cartographer, pester with questions for 1+ year.

Every cartographer has their own idiosyncratic way of making maps; this is only what I can get my head around. If this doesn’t work for you please check out other ’tographer tutorials at the bottom, they might click better.

My entire toolkit:

  • QGIS
  • GDAL
  • MAPublisher
  • Carto
  • Mapbox Studio
  • Photoshop
  • Illustrator
  • InDesign
  • ImageMagick
  • ChatGPT: input "write a script that uses ImageMagick to convert all .jp2 files into .png files, while shrinking them 50%" and it will return a working script in 20 seconds. Huge time saver, a real natural language input to CLI tools.

Getting started

Here’s my map workflow, you’ll find yours soon enough:

  1. Download geographic data: roads, rivers, lakes, hills, valleys, towns, lighthouses, etc.
  2. Thin out, clean, futz with that data in free software programs QGIS and GDAL. Modern start-with-pile-of-data carto is about knowing what to leave off the map, so you’ll spend a lot of time sifting tangles of data for what you actually want to show.
  3. Make the remaining data look nice in your graphic design software.

There’s a big directory of links at the bottom of this page; if you need data, a tutorial, some inspo, check down there first.

  • The Spatial Community – The upsetting part about learning cartography is the software, so you need computer pals to ask “why’s this broken?” The Spatial Community is a Slack channel where technical geographic information system (GIS) experts hang out, very friendly people who don’t mind questions from new mappers. Request an invite then join #cartography-designs, #gdal-ogr, #qgis, #data-sources and #newcomer-questions. Please ask questions when you get stuck! We’re here to help you! 
  • Map School – glossary of map jargon.
  • Map Resources Page – links compiled by Robin Tolochko.
  • If you’re on twitter, search #cartography or #practicarto and start asking questions.

Install some free software

Install click-around map software
QGIS lets you manipulate geodata with relative ease and export an SVG/PDF to cute up in Illustrator.

Using Windows?
QGISDownload for Windows > QGIS in OSGeo4W > the 64 bit one will likely work for you.

Using a Mac?

QGIS – Download for MacOS > Latest release.

QGIS tutorial 1 – getting started with QGIS.

QGIS tutorial 2 – more QGIS tutorials.

Install type-around map software

You’re gonna install GDAL (Geospatial Data Abstraction Library), a command-line tool that lets you edit geodata without clicking around in QGIS. Learning to type your way through changing projections, cropping images, filtering data etc. will greatly speed up your mapping. It might feel awkward at first but it’s very useful; I hate coding and I still love command-line tools.

Using Windows?

  1. It came with the OSGeo4W package you downloaded above; find the OSGeo4W Shell it installed > type “gdalinfo --version” without the quotes > you should see something like “GDAL 3.0.3, released 2020/01/08.”

Using a Mac?

  1. Install miniconda, a “package manager.” Head here > download and run “Miniconda3 MacOSX 64-bit pkg.”
  2. After it’s done installing, open the Terminal app.
  3. Type “conda create --name mapenvironment”, without quotes. You can change “mapenvironment” to whatever you’d like; this is just creating an “environment” in which to place software.
  4. Type “conda activate mapenvironment” without the quotes.
  5. Type “conda install gdal" without the quotes. You should see a bunch of text scroll by.
  6. To see if it worked, type “gdalinfo --version” without the quotes. You should see something like “GDAL 3.0.3, released 2020/01/08.”
  7. When you want to use GDAL: run Terminal, type “conda activate mapenvironment,” and now you can access tools like “gdalinfo” and “gdal_translate”

Find some geographic data

You’ll encounter dozens of arcane file types but here are the main ones to look out for. All of these get worked over in QGIS and GDAL.

  • .SHP – Shapefile – stores vector shapes + associated data. Imagine you drew a hexagon and saved it as a vector file, but didn’t stop there: you also attached a table to that shape listing the hexagon’s name, when you drew it, its size in square meters, etc.
  • .GEOJSON – GeoJSON – also stores vector shapes + data tables.
  • .TIFF – GeoTIFF –stores raster data like satellite images, terrain data. Like a regular TIFF except it comes with georeferencing that tells QGIS where on earth to place it.
  • .GDB –GeoDatabase – Stores vector shapes + data too.

Where to get geographic data

  • Countries, Lakes, Rivers – Natural Earth supplies geographic boundaries and features; for a quick overview download the quick start kit, open the .QGS file in QGIS and see how it looks. Not great? Well, thats where you come in.

  • Roads – Natural Earth has roads, but not all of them. If you want to make a road map of your city, use OpenStreetMap data downloaded via the site. You zoom to where you want some data, draw a box, give it your email and it’ll send you a shapefile that you can view in QGIS.

  • Land cover (is that part of earth a forest? A town? A desert?) – Want to show what’s down there? If your map shows a big chunk of the world, 300-meter resolution Globcover 2009 data should work; find “A coloured version of the map in GeoTIFF format” on that page to get a file you can tune up in QGIS and Photoshop. For North America the Commission for Environmental Cooperation has a detailed 30-meter resolution dataset.

  • Terrain – the hills and valleys, a.k.a “shaded relief” or “hillshade.” This used to be drawn with graphite and airbrushes, now you turn satellite altimetry data into little computer-generated landscapes. You can get pre-generated terrain from Natural Earth: for zoomed-in maps, for zoomed-out maps, for just the U.S..

    You can also roll your own terrain by grabbing elevation data for your map area from the Open Terrain Project and making your own (see step ❸).

  • Bathymetry (underwater terrain) – If your map includes undersea terrain, use the GMRT map tool to download data. Pick the rectangle tool at the top > drag a rectangle for your area > “create grid file”, file format: geotiff, mask: unmasked, grid resolution: maximum > download grid. You can process this into contours or a hillshade in step ❸.

Need something else? Time to start sifting the resources page down there ▼.

Design your map

So now you have QGIS and GDAL installed, plus a folder full of geographic data. How do you turn that into a map? Someday you’ll get an end-to-end account (it’d take like 30,000 words and good screencasts) but for now you join the grand tradition of “follow a tutorial (check the resources pile at the bottom of this page ▼), ask your computer pals at The Spatial Community for help when you get stuck.”

For now, some general guidelines:

Reproject your data

Whatever coordinate system you project your data into, you gotta apply that same projection to all the other data in your map. It’s all gotta match!

Vector data is easy to reproject in QGIS. Raster stuff like imagery and elevation data is a bit more involved:

  1. You can get into the weeds on picking a map projection, since you’re on the leaves of the old math problem of how to represent 3D stuff on a 2D plane. Luckily nobody’s navigating by your map, so just pick a projection that looks nice. Draw out a box enclosing your area of interest on and see if any of those look good. Or just default to Universal Transverse Mercator (UTM), nobody complains about that one.
  2. Get a projection you like? Copy the PROJ string from projection wizard or look up your UTM zone’s EPSG code on 
  3. Feed that string or EPSG code into GDAL to change the projection of your data. You can also change projections in QGIS

Make the terrain

  1. My favorite part of maps is the topography. Make your own in QGIS or...
  2. Try it in GDAL. The command line is a bit painful to learn at first but it will be much faster; making nice terrain requires a lot of experimentation, so you’ll need that speed.
  3. If you want very nice terrain, make it in a 3D-modeling program (Blender). It’s free and not that hard if you follow the instructions carefully. 
  4. PLEASE draw your own terrain: Sarah Bell wrote two tutorials on how to render shaded reliefs in pencil.

Design time

Once your data’s cleaned up and you’re left with what you want to show on your map, you export an SVG/PDF out of QGIS and make your vectors look nice in Illustrator or Inkscape. For the rasters (e.g. terrain and satellite imagery) export a TIFF from QGIS/GDAL and edit them in Photoshop or GIMP. There are tools that make this more convenient, like the wildly expensive MAPublisher plugin for Illustrator, but they’re not necessary.

Find some maps you like and see how close you can get; I think of ’tography as more craft than art, so you can get real far by copying the masters. Raid the inspo column at the bottom of the page; to see exactly how a good map is put together, download the National Park Service map Illustrator files.

Now you’re in the art zone: compositing in Illustrator, labeling, futzing with colors, upsetting back-tracks to your original geodata, adding cute ephemera like north arrows and legends, illustrations. Make it look nice. Real nice. I can’t wait to see your map ♡.