originalankur /maptoposter

Transform your favorite cities into beautiful, minimalist designs. MapToPoster lets you create and export visually striking map posters with code.

★ 14,286⑂ 1,251
PythonCreated 2026-01-08
14,286
stars
+14+16+106
1,251
forks
–
watchers
–
prs
–
issues
–
releases
–
discussions

README

City Map Poster Generator

Generate beautiful, minimalist map posters for any city in the world.




 Examples

| Country      | City           | Theme           | Poster |
|:------------:|:--------------:|:---------------:|:------:|
| USA          | San Francisco  | sunset          |  |
| Spain        | Barcelona      | warm_beige      |  |
| Italy        | Venice         | blueprint       |  |
| Japan        | Tokyo          | japanese_ink    |  |
| India        | Mumbai         | contrast_zones  |  |
| Morocco      | Marrakech      | terracotta      |  |
| Singapore    | Singapore      | neon_cyberpunk  |  |
| Australia    | Melbourne      | forest          |  |
| UAE          | Dubai          | midnight_blue   |  |
| USA          | Seattle        | emerald         |  |

 Installation

 With uv (Recommended)

Make sure uv is installed. Running the script by prepending uv run automatically creates and manages a virtual environment.

bash
 First run will automatically install dependencies
uv run ./create_map_poster.py --city "Paris" --country "France"

 Or sync dependencies explicitly first (using locked versions)
uv sync --locked
uv run ./create_map_poster.py --city "Paris" --country "France"


 With pip + venv

bash
python -m venv .venv
source .venv/bin/activate   On Windows: .venv\Scripts\activate
pip install -r requirements.txt


 Usage

 Generate Poster

If you're using uv:

bash
uv run ./create_map_poster.py --city  --country  [options]


Otherwise (pip + venv):

bash
python create_map_poster.py --city  --country  [options]


 Required Options

| Option | Short | Description |
|--------|-------|-------------|
| --city | -c | City name (used for geocoding) |
| --country | -C | Country name (used for geocoding) |

 Optional Flags

| Option | Short | Description | Default |
|--------|-------|-------------|---------|
| OPTIONAL: --latitude | -lat | Override latitude center point (use with --longitude) | |
| OPTIONAL: --longitude | -long | Override longitude center point (use with --latitude) | |
| OPTIONAL: --country-label | | Override country text displayed on poster | |
| OPTIONAL: --theme | -t | Theme name | terracotta |
| OPTIONAL: --distance | -d | Map radius in meters | 18000 |
| OPTIONAL: --list-themes | | List all available themes | |
| OPTIONAL: --all-themes | | Generate posters for all available themes | |
| OPTIONAL: --width | -W | Image width in inches | 12 (max: 20) |
| OPTIONAL: --height | -H | Image height in inches | 16 (max: 20) |

 Multilingual Support - i18n

Display city and country names in your language with custom fonts from google fonts:

| Option | Short | Description |
|--------|-------|-------------|
| --display-city | -dc | Custom display name for city (e.g., "東京") |
| --display-country | -dC | Custom display name for country (e.g., "日本") |
| --font-family | | Google Fonts family name (e.g., "Noto Sans JP") |

Examples:

bash
 Japanese
python create_map_poster.py -c "Tokyo" -C "Japan" -dc "東京" -dC "日本" --font-family

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON