Turn Any City’s Street Layout into a Stylized Vector Poster with One Click
This article introduces two open‑source web tools—MapPoster Online (Rust/WASM) and MapToPoster JS (Leaflet + MapLibre GL)—that let you input a city name and instantly generate a customizable, high‑resolution vector map poster directly in the browser.
Ever wondered if a city’s street network could become a cool vector illustration? By extracting OpenStreetMap road data and rendering it with style, you can create map art posters. While the original Python CLI tool maptoposter required a steep learning curve, two newer projects bring the same capability to the browser.
The Beijing poster shows clear road skeletons of the 2nd and 3rd rings and Chang'an Avenue, with fully customizable colors.
The MapToPoster JS interface shows theme and setting options on the left and a live map preview on the right.
Two Projects, Two Technical Routes
MapPoster Online – Rust/WASM Stack
Project URL: https://github.com/ianho7/maptoposter-online (⭐ 386)
The core strength is its rendering engine written in Rust, compiled to WebAssembly, and executed entirely in the browser using the tiny-skia 2D library. No backend service is required.
20 built‑in themes (e.g., Nordic Ice, Cyberpunk Neon, Vintage Maritime, Glitch Art Purple)
Custom color palettes for background, roads, water, greenery, landmarks
Multiple export sizes : A4 portrait/landscape, square, phone wallpaper, 16:9 desktop, all at 300 DPI
Real‑time preview with instant effect on adjustments
Multilingual UI (Chinese, English, Japanese, Korean, German, Spanish, French)
IndexedDB caching of downloaded map data for fast repeat generation
Custom fonts – built‑in serif font plus optional TTF/OTF upload
Online demo: https://maptoposter.0v0.one/
MapToPoster JS – Dual‑Engine Hybrid
Project URL: https://github.com/dimartarmizi/map-to-poster (⭐ 869)
This project integrates two rendering engines in a single app: Leaflet for raster tiles and MapLibre GL for vector maps, allowing you to switch modes on the fly.
11 theme styles ranging from Arctic Frost to Sakura Bloom
Precise geosearch powered by Nominatim’s global place lookup
Dynamic markers and routes for adding points and travel paths
Gallery framing effect with adjustable mat width, border, and opacity
Ultra‑high‑resolution export up to 50 000 px, suitable for large‑format prints
Fully local execution – all calculations run in the browser, no data is uploaded
Each theme not only changes colors but also provides a distinct road‑rendering style, such as “Paper Heritage” (vintage parchment) or “Volcanic Ash” (dark gradient).
Technical Comparison
Rendering engine : MapPoster Online uses Rust/WASM (tiny‑skia); MapToPoster JS uses Leaflet + MapLibre GL.
Front‑end framework : MapPoster Online is built with React 19 + TypeScript; MapToPoster JS uses native JavaScript.
Theme count : 20 vs. 11.
Custom color control : fine‑grained in both projects.
Export resolution : 300 DPI multi‑size vs. up to 50 000 px.
Online experience : MapPoster Online runs at https://maptoposter.0v0.one/; MapToPoster JS requires local deployment.
License : MIT for both.
How to Use
Both tools run in the browser without installation.
MapPoster Online : Open https://maptoposter.0v0.one/, select a city, choose a theme, and download the poster in three simple steps.
MapToPoster JS (local deployment):
git clone https://github.com/dimartarmizi/map-to-poster.git
cd map-to-poster
npm install
npm run devThen open http://localhost:5173 in a browser.
Applicable Scenarios
Technical demos & visualisation : showcase city road networks or urban fabric analysis.
Illustrations & assets : use in PowerPoint slides, video thumbnails, blog images, or technical documentation.
Print output : generate print‑quality images for project merchandise or offline displays.
Education & research : provide teaching material for GIS‑related courses.
GitHub: - MapPoster Online: https://github.com/ianho7/maptoposter-online (⭐ 386) - MapToPoster JS: https://github.com/dimartarmizi/map-to-poster (⭐ 869) Language: TypeScript / JavaScript License: MIT
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Geek Labs
Daily shares of interesting GitHub open-source projects. AI tools, automation gems, technical tutorials, open-source inspiration.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
