Locate
A city and country are resolved to coordinates, with an adjustable radius controlling how much of the street network enters the frame.
How It's Made
Every city begins with real street geometry. We fetch it once, preserve its hierarchy, and run the same urban fingerprint through six deliberately different color systems.

The current city exports are 4200 × 4200 PNGs. Batch generation locks the render settings for a city list, downloads map geometry once per city, and reuses that in-memory data for every selected theme.
A city and country are resolved to coordinates, with an adjustable radius controlling how much of the street network enters the frame.
Our fork reads one-degree OpenStreetMap PBF extracts from a local cache or CDN, with the live Overpass API available as a fallback.
Roads are projected and layered by hierarchy in Matplotlib. Coastline, water, parks, labels, and gradients can be composed above the base geometry.
The geometry is reused across six visual systems, exported as full-quality square PNGs, indexed, and served independently from the image CDN.
python create_map_poster.py --city "Johannesburg" --country "South Africa" --data-source pbf --theme risk/defaultBuilt In The Open
The renderer began with Ankur's MIT-licensed MapToPoster project. Our fork adds a full GUI, PBF tile sourcing and caching, batch workflows, risk themes, and large-scale generation tooling. Map data is derived from OpenStreetMap contributors.