Turn a GPX file into a map image

Upload a route below and get a PNG back — rendered entirely in your browser. Nothing is uploaded to a server.

Map tiles are fetched directly from tile.openstreetmap.org— no proxy, no backend.

Powered by

gpxsnap

A dependency-free GPX route-preview renderer — no sharp, no libvips, no native bindings anywhere in the chain. The same library behind the demo above runs in Bun, Node (≥22.18), and Deno too.

A real ~1200-point GPS track rendered near Lyon, France, hugging real roads
A real recorded ride, rendered by gpxsnap — dense GPS data already hugs the road network with a plain polyline stroke, no map-matching required.

Install

bun add gpxsnap
import { renderRoute } from "gpxsnap";

const png = await renderRoute({
  coordinates: [[2.3522, 48.8566], [2.295, 48.8738], [2.2986, 48.8867]],
  width: 1200,
  height: 600,
});