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.

Geek Labs
Geek Labs
Geek Labs
Turn Any City’s Street Layout into a Stylized Vector Poster with One Click

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.

Beijing map poster generated by MapPoster Online
Beijing map poster generated by MapPoster Online

The Beijing poster shows clear road skeletons of the 2nd and 3rd rings and Chang'an Avenue, with fully customizable colors.

Screenshot of MapToPoster JS interface
Screenshot of MapToPoster JS interface

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 dev

Then 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
Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

TypeScriptJavaScriptRustWebAssemblyLeafletMapLibreMapPosterOpenStreetMap
Geek Labs
Written by

Geek Labs

Daily shares of interesting GitHub open-source projects. AI tools, automation gems, technical tutorials, open-source inspiration.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.