这个项目能做什么
MapToPoster 是一个命令行工具,可生成全球城市的极简海报风格地图。输入城市和国家名称后,它会解析地理位置、下载 OpenStreetMap 数据,并渲染出适合打印或作为壁纸的高分辨率 PNG。
工作原理:脚本通过 Nominatim 解析坐标,使用 OSMnx 获取街道网络和地物,然后用 matplotlib 绘制分层输出——背景、水域、公园、按 OSM 道路类型着色和加权的道路、渐变淡出以及文字标签。输出文件保存到 posters/ 目录,文件名包含城市、主题和时间戳。
主要选项包括 --city 和 --country(必填),以及 --theme、--distance(地图半径,单位为米,默认 18000)、--width/--height(单位为英寸,默认 12x16,最大 20)、--latitude/--longitude(用于覆盖中心点)、--country-label、--list-themes 和 --all-themes(一次渲染所有主题)。分辨率指南将常见目标(Instagram 帖子、手机/HD/4K 壁纸、A4 打印)映射到 300 DPI 下的英寸值。
多语言支持允许用户通过 --display-city、--display-country 和 --font-family 以本地文字显示城市和国家名称;字体会从 Google Fonts 下载并缓存在本地。渲染器会检测拉丁与非拉丁文字,并相应调整字距(拉丁字母加宽字距,日语、阿拉伯语、韩语、泰语等使用自然字距)。
themes/ 目录内置 17 种主题,包括 noir、midnight_blue、blueprint、neon_cyberpunk、warm_beige、pastel_dream、japanese_ink、emerald、forest、ocean、terracotta、sunset、autumn、copper_patina、monochrome_blue、gradient_roads 和 contrast_zones。自定义主题以 JSON 文件形式添加,定义背景、文字、水域、公园以及各类道路的颜色。
安装支持 uv(推荐,带锁定依赖)或 pip 加虚拟环境。README 还记录了内部架构、关键函数、渲染 z 顺序、OSM 道路类型到道路层级的映射、排版定位、新增地图图层或主题属性的扩展方式,以及缓存坐标、使用仅机动车道路网络以加快渲染等性能建议。
评论
0 人表达喜爱 · 满10人后显示 Deer Point
登录后参与讨论。