This repository will generate a high-quality PDF map of Baltimore's neighborhoods at 2' x 3' size. It also includes parks, water features, and ghost bikes. The underlying representation is properly vector-based, as opposed to tile-based, so it should be easy to adapt this to any size you like.
There are hundreds of other features you could include when pulling data from Open Street Map. Consider taking a look!
First, make sure you install the requirements:
pip install -r requirements.txt
Then, run the script, pointing it to a YAML configuration file:
python3 baltimore.py --data-file visit.yaml
This will create a file, baltimore.pdf. This file is also cached under maps/, where you can also find the map version with legend.
There is also another script, city.py, that you can use for arbitrary cities.
It doesn't work equally well for all of them; it's best if the city has neighborhods defined in Open Street Map (administrative level = 10).
A few good examples are:
./city.py "Berlin, Germany"
./city.py "St. Louis, MO"
One that doesn't look as good because it lacks neighborhood data is Grand Rapids, MI.
This is really provided as a launching point for a custom city map.
Can be found in the maps/ directory, including different version of the Baltimore map.
What's mostly missing is street names. Adding labels for streets is a complicated process, however, that I believe is usually done manually or at least semi-automatically and then made available via tiles, rather than generated by scratch. It would be nice to add this information, however.
I am indebted to the City of Baltimore, Open Street Map, and Geoff Boeing.
- The City of Baltimore provides excellent resources, including a neighborhood map that includes a complete list of neighborhoods not found in Open Street Map.
- Open Street Map provides all the street-level data, as well as layers upon layers of annotations. You should consider contributing when you find an error; I've made a number of edits myself!
- Geoff Boeing is the author of OSMnx, an amazing Pythong wrapper around Open Street Map data.
Copyright 2025, Matt Post



