Destinations
Live on this deployment
What it does
Every feature, no upsell tier
-
Multi-stop routing Per-leg distance and duration. Click anywhere on the map and the router snaps the stop to the road.
-
Coordinates, pasted Decimal, DMS, or N43.65 W79.38 — straight in, bypassing the geocoder. Paste a whole list of addresses and geocode the lot.
-
Branch comparison Run A→B1→C against A→B2→C and read the distance and time delta. The divergence is derived, not hand-managed.
-
The clock Set a departure time, a driving limit before a break, a meal window and a sleep window. MapRouter says where you will need to stop, then helps you find a real hotel or restaurant there and folds it into the route.
-
A printable route sheet A clean, achromatic turn-by-turn table that survives a printer.
-
Three themes Light, dark, and a pure black-and-white mode where routes are told apart by line weight and dash pattern rather than colour. The switch above is the real one.
The API
One Worker, keyless, same origin
-
/api/route Route through a list of coordinates. Valhalla by default; OpenRouteService when ORS_KEY is set. POST
-
/api/places Lodging and food near a coordinate, via Overpass. GET
-
/api/geocode/suggest Autocomplete a single place name, via Photon. GET
-
/api/geocode/batch Geocode a pasted list of addresses in one request. POST
In the repository
Paths in the checkout — the repo is private
-
docs/ARCHITECTURE.md The state model, and why branches are stored as variants rather than a graph.
-
docs/API.md Request and error contracts for the four endpoints above.
-
docs/DEPLOY.md Deploying the Worker, and the fair-use limits of the free services this runs on.
-
npm run preview Build and serve the whole thing on the real Workers runtime, API included.