基于 OpenStreetMap 数据的 Python 命令行工具,可为任意城市生成极简风格的地图海报。
marceloprates/prettymaps
一个基于 OpenStreetMap 数据绘制自定义地图艺术图的极简 Python 库。
- Star
- 14,326
- Fork
- 735
- 未关闭 Issue
- 24
- 最近提交
- 3个月前
这是什么?
prettymaps 根据地名获取 OpenStreetMap 数据,并用 matplotlib 渲染成风格化的地图图像。可以按标签选择水系、建筑、道路、公园等各类图层,并为每层单独设置颜色、填充和描边。
它面向的是地图装饰画和可打印图像的生成,而不是导航地图。通过 radius、dilate 等参数可以设置圆形或自定义边界,并支持可复用的 JSON 样式预设,以及将多张地图组合排版的 multiplot 功能。项目还附带 Streamlit 前端和 marimo 教程笔记本。
该包可从 PyPI 安装,需要 Python 3.11 及以上版本。生成的地图图像需保留图上的 OpenStreetMap 署名,这是其许可证的要求。
核心功能
- 01借助 osmnx 按地名获取 OpenStreetMap 图层数据。
- 02用 matplotlib 为每个图层设置颜色、填充和描边。
- 03通过 radius、dilate 参数支持圆形或自定义边界。
- 04提供 JSON 样式预设和多图组合排版。
- 05附带 Streamlit 网页前端和 marimo 教程笔记本。
适用场景
- 制作城市或街区的装饰性地图海报。
- 为生成艺术项目创作风格化地图作品。
- 在学习地理空间 Python 时直观浏览 OpenStreetMap 数据。
- 制作用于礼品或家居装饰的可打印地图图像。
快速上手
- 1
从 PyPI 安装 prettymaps
pip install prettymaps - 2
导入 prettymaps 并绘制某地的地图
python -c "import prettymaps; plot = prettymaps.plot('Stad van de Zon, Heerhugowaard, Netherlands')"
使用前须知
- 需要联网才能获取 OpenStreetMap 数据。
- 采用 AGPL-3.0 许可证,分发或网络提供的衍生作品必须公开源代码。
收录于专题
标签
常见问题
- prettymaps 是什么?
- 一个基于 OpenStreetMap 数据绘制自定义地图艺术图的极简 Python 库。 prettymaps 根据地名获取 OpenStreetMap 数据,并用 matplotlib 渲染成风格化的地图图像。可以按标签选择水系、建筑、道路、公园等各类图层,并为每层单独设置颜色、填充和描边。
- prettymaps 可以免费使用吗?用的什么许可证?
- prettymaps 以 AGPL-3.0 许可证开源。用于商业产品前,请先确认许可证条款。
- prettymaps 还在维护吗?
- 半年内有更新。prettymaps 最近一次提交是在 2026年7月30日。
- prettymaps 适合用来做什么?
- 制作城市或街区的装饰性地图海报。 为生成艺术项目创作风格化地图作品。 在学习地理空间 Python 时直观浏览 OpenStreetMap 数据。 制作用于礼品或家居装饰的可打印地图图像。
- prettymaps 怎么安装和运行?
- 从 PyPI 安装 prettymaps: pip install prettymaps 导入 prettymaps 并绘制某地的地图: python -c "import prettymaps; plot = prettymaps.plot('Stad van de Zon, Heerhugowaard, Netherlands')"
- 在哪里获取 prettymaps?
- 源代码和安装说明在 GitHub 上:https://github.com/marceloprates/prettymaps
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
1.4万+18 本周1252PythonMIT更新于 3个月前
在浏览器中一次性渲染任意城市的全部道路,生成地图风格的可视化图像,数据来自 OpenStreetMap。
9807+11 本周762JavaScriptMIT更新于 28天前
一款在浏览器中运行的工具,基于 OpenStreetMap 数据生成可下载的城市地图海报,无需安装。
980+1 本周47TypeScriptMIT更新于 3个月前
《Python 数据科学手册》全文的免费 Jupyter Notebook 版本,涵盖 NumPy、Pandas、Matplotlib 和 Scikit-Learn。
5万1.9万Jupyter NotebookMIT更新于 2年前
基于 OpenStreetMap 数据的免费离线地图与导航应用,支持 Android 和 iOS,无广告、无追踪。
1.6万+68 本周1680C++Other更新于 18小时前
驱动 OpenStreetMap 网站与编辑 API 的 Ruby on Rails 应用程序。
2883+8 本周1104RubyGPL-2.0维护活跃更新于 前天