做了一个小工具,叫 MapPoster Online,可以在浏览器里把城市地图生成装饰画/海报。
在线体验: https://maptoposter.0v0.one
GitHub: https://github.com/ianho7/maptoposter-online
这个项目的来源比较简单:之前看到过一个 Python CLI 项目 maptoposter,可以生成城市地图海报,效果挺有意思。但 CLI 对非 Python 用户来说还是有一点点门槛,需要装环境、跑命令、找输出文件。
所以我做了一个网页版,目标是 0 门槛、打开网页后就能选城市、调样式、导出图片。
一些生成效果:


前端是 React 19 + TypeScript + Vite + Tailwind CSS 。渲染部分用了 Rust/WASM ,底层是 tiny-skia 。
地图数据默认主要来自 OpenStreetMap ,通过 Overpass API 获取道路、水体、公园和 POI 数据。
比较麻烦的地方是数据量。比如东京 18km 半径的测试数据,道路要素可以到 56 万以上,原始 GeoJSON 大约 40MB 。直接在浏览器里处理这种 GeoJSON ,很容易被 JSON.parse、对象转换、JS 和 WASM 之间的数据传输拖慢。
后面做了几类优化:
Float64Array,减少嵌套对象转换PathBuilder因为地图数据量上来以后,普通 JSON 对象流转的成本会非常明显。
先说几个已知问题,免得大家试用时踩坑:
主要想问几个问题:
在线体验: https://maptoposter.0v0.one
GitHub: https://github.com/ianho7/maptoposter-online
欢迎直接回复,也可以在 GitHub 开 issue ,当然如果能给我一个 Star 就更好了 😊
1
Hiok 2h 8m ago
不错 支持一下
|
2
IlIl 2h 3m ago
和这个网址有点像 https://terraink.app/
|
3
quanmz0zhang 1h 28m ago
shanxi shanxi 陕西山西怎么区分?
|