Generate a printable street map poster of any city in a chosen visual theme such as midnight blue, neon cyberpunk, or japanese ink.
Create a 4K wallpaper or Instagram-sized map image of your city with the correct resolution for each format.
Produce a map poster with the city name displayed in Japanese, Arabic, Korean, or another non-Latin script using Google Fonts.
Generate one poster per color theme in a single command to compare all visual styles side by side.
Recommended to run via uv so dependencies are handled automatically without a manual virtual environment.
MapToPoster is a Python script that generates minimalist map posters of any city in the world. You give it a city name and country, and it downloads street map data from OpenStreetMap and turns it into a printable poster image that you export as a PNG file. You run it from the command line. The basic command takes a city and country, and the script handles everything else: fetching the map data, rendering the streets and roads, adding a label with the city name, and saving the result. You can also fine-tune several settings, including the radius of the map area around the city center, the size of the output image in inches, and the visual theme. The themes are where the visual variety comes from. The repo includes named color schemes such as sunset, midnight blue, neon cyberpunk, japanese ink, terracotta, blueprint, forest, and others. Each one applies a different palette to the background, roads, and text. You can list all available themes with a flag, or generate one poster per theme in a single run to compare them. The script supports non-Latin scripts through Google Fonts. If you want the city name displayed in Japanese, Arabic, Korean, Thai, or another script, you pass the display text in your language along with the Google Fonts font family name, and the font is downloaded automatically and cached locally. For sizing, the README includes a table mapping target resolutions (Instagram post, A4 print, 4K wallpaper, mobile wallpaper) to the inch values you should pass in. The recommended installation method is uv, a Python tool runner that handles dependencies automatically, so you can run the script without manually setting up a virtual environment first.
← originalankur on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.