Repolode
originalankur

originalankur/maptoposter

基于 OpenStreetMap 数据的 Python 命令行工具,可为任意城市生成极简风格的地图海报。

Star
14,223
Fork
1,256
未关闭 Issue
61
最近提交
3个月前

这是什么?

这是一个命令行工具,输入城市和国家名称后,它会通过地理编码定位该城市,并借助 OSMnx 从 OpenStreetMap 下载道路、水系和公园数据,再用 matplotlib 渲染成 PNG 海报,上面带有城市与国家名称、坐标和所选配色主题。

工具内置 17 套以 JSON 定义的主题,也可以自行编写 JSON 文件添加新主题,设置背景、水系、公园和各级道路的颜色。地图半径、输出尺寸(英寸)和中心坐标都可以通过命令行参数调整。对于非拉丁字母的城市名,可以指定 Google Fonts 字体,字体会自动下载并缓存到本地。

适合想用代码生成城市装饰画、壁纸或印刷海报的用户。

核心功能

  • 01支持按城市和国家名称生成海报,也可直接指定经纬度。
  • 02内置 17 套配色主题,并支持通过 JSON 文件自定义主题。
  • 03可调整地图半径、海报宽高(英寸)和输出分辨率。
  • 04支持用 Google Fonts 显示本地化的城市和国家名,覆盖日文、韩文、阿拉伯文、泰文等。
  • 05一次运行即可为同一城市生成所有主题的海报。

适用场景

  • 为家乡或旅行目的地制作装饰性地图海报。
  • 用城市地图制作手机或电脑壁纸及社交媒体配图。
  • 制作 A4 或大尺寸地图艺术作品用于装饰或礼物。
  • 通过修改主题或图层代码,学习 matplotlib 与 OSMnx 的地图渲染。

快速上手

  1. 1

    安装 uv(推荐),然后运行脚本;依赖会自动安装

    uv run ./create_map_poster.py --city "Paris" --country "France"
  2. 2

    或使用 pip 和虚拟环境安装

    pip install -r requirements.txt
  3. 3

    使用 pip 和虚拟环境生成海报

    python create_map_poster.py --city "Paris" --country "France"

使用前须知

  • 需要联网才能进行地理编码、获取 OpenStreetMap 数据以及下载 Google 字体。
  • 距离设置较大或输出尺寸较大时,生成速度会变慢且占用更多资源。

标签

常见问题

maptoposter 是什么?
基于 OpenStreetMap 数据的 Python 命令行工具,可为任意城市生成极简风格的地图海报。 这是一个命令行工具,输入城市和国家名称后,它会通过地理编码定位该城市,并借助 OSMnx 从 OpenStreetMap 下载道路、水系和公园数据,再用 matplotlib 渲染成 PNG 海报,上面带有城市与国家名称、坐标和所选配色主题。
maptoposter 可以免费使用吗?用的什么许可证?
maptoposter 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
maptoposter 还在维护吗?
半年内有更新。maptoposter 最近一次提交是在 2026年8月6日。
maptoposter 适合用来做什么?
为家乡或旅行目的地制作装饰性地图海报。 用城市地图制作手机或电脑壁纸及社交媒体配图。 制作 A4 或大尺寸地图艺术作品用于装饰或礼物。 通过修改主题或图层代码,学习 matplotlib 与 OSMnx 的地图渲染。
maptoposter 怎么安装和运行?
安装 uv(推荐),然后运行脚本;依赖会自动安装: uv run ./create_map_poster.py --city "Paris" --country "France" 或使用 pip 和虚拟环境安装: pip install -r requirements.txt 使用 pip 和虚拟环境生成海报: python create_map_poster.py --city "Paris" --country "France"
在哪里获取 maptoposter?
源代码和安装说明在 GitHub 上:https://github.com/originalankur/maptoposter

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目