// the find
originalankur/maptoposter
Transform your favorite cities into beautiful, minimalist designs. MapToPoster lets you create and export visually striking map posters with code.
A CLI tool that pulls street network data from OpenStreetMap via osmnx and renders it as a print-quality map poster using matplotlib. Point it at a city, pick a theme, get a PNG. Aimed at developers who want wall art without paying a print shop or a SaaS.
The theme system is genuinely well-designed — JSON files with named color slots mean anyone can add a new aesthetic in five minutes without touching Python. Multilingual support via on-demand Google Fonts download is a nice touch that most similar tools skip entirely. The coordinate override flag is useful for cities where Nominatim geocodes to the wrong center (suburbs, administrative boundaries). Using uv with a lockfile keeps the osmnx/matplotlib dependency tree reproducible, which matters because osmnx breaks on minor version bumps.
The whole project is a single 600-line script with no tests beyond a shell script that just runs all themes — there's no assertion that the output looks correct, only that it doesn't crash. Nominatim is rate-limited to one request per second and has no caching, so running --all-themes for a new city hits the geocoder 17 times for the same coordinates. The distance parameter controls both the OSM data fetch radius and the visual crop, which means zooming in on a dense area (say, Venice at 2000m) re-downloads the full street graph anyway — there's no tile caching. Finally, the 'no web UI, no Docker' contributor policy is reasonable but the README doesn't explain where the project is going, so it's unclear if this stays a weekend CLI tool or is heading somewhere.