City Map Poster: The Art of Cartography at Home
The Intersection of Data and Art
There is something inherently mesmerizing about the layout of cities. The chaotic web of medieval European streets, the rigorous grids of American metropolises, or the organic sprawl of Asian megacities—each tells a story of history, culture, and geography.
For years, minimalist city map posters have been a popular choice for modern interior decor. They capture the essence of a place—a hometown, a favorite travel destination, or a city of dreams—in a way that abstract art often cannot. However, high-quality prints from boutique design studios can be prohibitively expensive, and they often lack customization.
This is where MapToPoster comes in.

The Philosophy of Open Design
MapToPoster is an open-source project born from a simple question: Why can't we generate our own professional-grade map art using the vast amount of open data available?
Built upon the incredible OpenStreetMap (OSM) database, this tool empowers anyone to become a map designer. It strips away the noise of labels, markers, and traffic data, leaving behind only the pure geometry of the city: the veins of roads, the arteries of highways, and the negative space of water and parks.
How It Works
Under the hood, the project leverages Python's powerful data ecosystem. It uses OSMnx to fetch vector data from OSM, defining the skeleton of the city. Then, Matplotlib—usually reserved for scientific charts—is repurposed here as a precise artistic renderer.
The process is streamlined but deeply customizable:
- Search: Enter any city name (e.g., "Paris", "Kyoto", "New York"). The system geocodes it using Nominatim or a local offline database (optimized for Chinese cities).
- Style: Choose from over 17 curated themes, ranging from the classic "Minimalist Black & White" to "Cyberpunk" neon or "Vintage" paper textures.
- Refine: Adjust the radius to capture just the city center or the entire metropolitan era. Toggle layers like highways, water bodies, or green spaces to perfect the composition.
- Export: Generate high-resolution PNGs for printing or SVGs for further vector editing.
Features at a Glance
- 🎨 Rich Themes: 17+ presets designed for different interior styles.
- 🔍 Smart Geocoding: Intelligent search that understands hierarchies (Country → Province → City).
- ⚙️ Precision Control: Fine-tune map radius (4km–30km) and canvas aspect ratios (A4, Square, etc.).
- 🇨🇳 Local Optimization: Enhanced support for Chinese administrative divisions, solving common offset and data missing issues.
Try It Yourself
The project is fully open-source and capable of running locally or in the cloud. We also provide a hosted demo for quick experiments.
- GitHub Repository: IsaacHuo/maptoposter
- Live Demo: Hugging Face Space (Note: Rendering speed depends on free tier resources)
Installation
For the best experience and faster rendering, I recommend running it locally using uv:
# Clone the repository
git clone https://github.com/IsaacHuo/maptoposter.git
cd maptoposter
# Sync dependencies
uv sync
# Launch the Web UI
uv run python app.pyVisit http://localhost:7860 and start designing your city.
This project is built on the shoulders of giants, developed based on originalankur/maptoposter and the open mapping community.