为全球任何城市生成精美、简约的地图海报。该项目基于 originalankur/maptoposter 开发。
🚀 在线体验:Hugging Face Space(受限于服务器资源,生成速度很慢。。。)
- 特大城市(如北京):可能会出现中心定位不准的问题。
- 小城市:由于 OpenStreetMap 数据缺失,部分图层元素可能无法显示。
- 生成速度:由于使用国外服务器资源(OSM/Nominatim)且渲染方式较基础,下载和渲染速度可能较慢。
- 🎨 丰富主题:内置 17+ 种精心设计的主题(从极简黑白到赛博朋克)。
- 🔍 智能选择:支持级联选择(国家 → 省份 → 城市)或直接搜索。
- ⚙️ 高度自定义:
- 调整地图半径(从 4km 街道级到 30km 都市圈)。
- 各种输出比例(A4, 方形等,通过宽/高设置)。
- 图层控制:自由选择显示高速、主干道、次干道、水域或公园。
- 🖼️ 多格式导出:支持 PNG(高清打印)、SVG(矢量编辑)和 PDF。
- 🖱️ 交互界面:基于 Gradio 的现代化 Web UI,支持实时预览。
推荐使用 uv 管理项目:
# 同步环境及依赖
uv syncuv run python app.py启动后在浏览器打开 http://localhost:7860。
提示:如果遇到端口冲突,可以使用
bash restart.sh脚本自动清理旧进程并重启服务。
| 国家 | 城市 | 主题 | 海报预览 |
|---|---|---|---|
| 中国 | 丽江 | japanese_ink | ![]() |
| 中国 | 北京 | japanese_ink | ![]() |
| 中国 | 广州 | pastel_dream | ![]() |
| 中国 | 桂林 | forest | ![]() |
| 中国 | 香港 | ocean | ![]() |
| 中国 | 上海 | ocean | ![]() |
Generate beautiful, minimalist map posters for any city in the world. This project is developed based on originalankur/maptoposter.
🚀 Live Demo: Hugging Face Space (Note: Rendering is slow due to limited server resources).
- Large Metros (e.g., Beijing): Positioning might not perfectly center on the downtown area.
- Small Cities: Some layers might be empty due to missing data in OpenStreetMap.
- Performance: Downloads and rendering can be slow as it relies on external APIs (OSM/Nominatim) and basic rendering methods.
- 🎨 Diverse Themes: 17+ pre-designed themes (ranging from minimalist B&W to Cyberpunk).
- 🔍 Smart Selection: Cascading selection (Country → Province → City).
- ⚙️ Highly Customizable:
- Adjustable map radius (4km street-level to 30km metro area).
- custom dimensions (width/height in inches).
- Layer Control: Toggle Motorways, Primary roads, Secondary roads, Water, and Parks.
- 🖼️ Multi-format Export: Supports PNG (High-res), SVG (Vector), and PDF.
- 🖱️ Interactive UI: Modern Web UI built with Gradio with real-time preview.
Recommended: Use uv for environment management:
uv syncuv run python app.pyOpen http://localhost:7860 in your browser.
Tip: If you encounter port conflicts, you can use the
bash restart.shscript to automatically clear old processes and restart the service.
| Country | City | Theme | Poster |
|---|---|---|---|
| China | Lijiang | japanese_ink | ![]() |
| China | Beijing | japanese_ink | ![]() |
| China | Guangzhou | pastel_dream | ![]() |
| China | Shanghai | ocean | ![]() |
- Data Source: © OpenStreetMap contributors
- Geocoding: Nominatim
- Rendering: OSMnx & Matplotlib






