Premium apps Part of Cartograph
Cartograph GPS Art Route Designer (shape → roads → GPX)
Snap a heart, star or other shape to the streets of your OSM extract and get a GPX route.
Try an example: Heart run in Vaduz (built-in sample) · Star ride by bike
How it works
Places a shape (heart, star, circle, square, triangle, arrow or zigzag) at a point, size and rotation, samples it into waypoints, snaps them to the walkable or rideable roads of your own OpenStreetMap extract and joins them with shortest paths that stay close to the shape. Returns the route as GPX with its length and how closely it follows the drawing. Routing runs on the extract itself — no routing service is used. It is the GPS-art engine of the Cartograph app.
- The shape is placed with geodesics: every outline point keeps its direction and distance from the centre (Karney’s direct problem on WGS84), so the size is true on the ground.
- The road graph is built from the extract: highway ways usable on foot or by bike (motorways and trunk roads, access=no/private and explicit foot=no/bicycle=no excluded; bikes avoid steps and footways unless allowed and follow one-way streets). Junctions are shared coordinates; edge lengths are great-circle distances.
- The outline is sampled into waypoints; each is snapped to the nearest graph node within twice the spacing (dead ends avoided where possible). Consecutive waypoints are joined by A* shortest paths whose cost adds “stay-on-shape weight × distance from the shape segment ÷ spacing” per metre, so routes prefer streets that hug the drawing. Out-and-back spurs are removed.
- Quality: mean distance of the route from the shape, the largest gap in either direction (Hausdorff-style) and the share of the shape that has the route within 25 m — measured every 10 m in a local equirectangular frame.
Sources
- OpenStreetMap data (ODbL 1.0) — copyright and attribution (OpenStreetMap Foundation)
- OSM wiki: Map features (highway, railway, waterway, landuse, leisure, natural, building tags) (OpenStreetMap wiki)
- Algorithms for geodesics (J. Geodesy 87, 43–55) (C. F. F. Karney, 2013)
- A formal basis for the heuristic determination of minimum cost paths (IEEE Trans. SSC 4(2)) (P. E. Hart, N. J. Nilsson and B. Raphael, 1968)
- GPX 1.1 Schema Documentation (TopoGrafix)
Part of Cartograph
-
Cartograph Map posters & route art
Turn a place into a map print, a GPS-art route, a fair meeting point or a true-size map.
Related tools
- Cartograph Map Poster (SVG + PDF from OpenStreetMap) – Turn an OpenStreetMap extract into a print-ready city map poster as SVG and vector PDF.
- RavingDesk GPS File Converter (GPX ↔ KML ↔ GeoJSON) – Convert GPX, KML and GeoJSON, simplify tracks and get length, climb, descent and duration.
- Running Pace & Splits – Pace, time or distance in km or miles, splits, race predictions, treadmill speed, laps.
How to use the Cartograph GPS Art Route Designer
Snap a heart, star or other shape to the streets of an OpenStreetMap extract and get a GPX route with length and shape-fidelity figures.
What it is for
GPS art is a run or ride whose recorded track draws a picture – a heart for a special date, a star, letters or an animal. Planning one by hand means trying street after street on a map. This tool does the tedious part: it places a shape at the size and angle you choose, snaps it to the streets of your OpenStreetMap extract and joins everything into one route you can load into a watch or bike computer as GPX.
The routing is done by the tool itself on your extract (A* shortest paths with a penalty for leaving the shape). No routing service is involved, so the result depends only on the streets and access tags in your file. Leave the file field empty to try it on the built-in Vaduz sample.
It is not a navigation app: it knows nothing about traffic, closures or how safe a street is.
Worked example
On the Vaduz sample, the heart at 47.145, 9.517, 1,000 m wide, on foot, with the default stay-on-shape weight of 2:
- Route length: 4.43 km
- Shape length: 3.16 km
- Shape covered within 25 m: 70 %
- Mean distance from the shape: 28.7 m
- Largest gap: 102 m
The route is longer than the outline because streets zig-zag around the curves of the heart. 70 % of the outline has the route within 25 m, enough for the heart to read clearly on a track. With the weight set to 0 (plain shortest paths) the route got slightly shorter, 4.39 km, and coverage dropped to 69 % – in this street grid the guidance matters little.
The star example by bike – 47.142, 9.52, 800 m wide – gave 4.50 km for a 2.82 km star with 60 % coverage, mean distance 35.8 m and a largest gap of 175 m. The bike profile may not use steps and footways and must follow one-way streets, so it has fewer options.
How to read the result
The picture shows your streets in grey, the shape dashed in purple and the route in orange, with a dot at the start. Shape covered within 25 m is the best single quality figure: it samples the outline every 10 m and counts how much of it has the route nearby. Mean distance tells you how far the route typically runs from the drawing, Largest gap where it had to leave it most. If waypoints had no street within reach, a warning counts them.
Download the GPX file and import it as a course or route.
Tips and common mistakes
- Bigger shapes fit better: a heart 300 m wide has to squeeze into two or three blocks; at 800–1,500 m the street grid has room.
- Rotate a few degrees at a time; the coverage figure often jumps when long lines of the shape align with main streets.
- Rivers, railways and motorways have few crossings. Keep the shape on one side of them if you can.
- Raise the stay-on-shape weight when the route takes shortcuts across the middle of the shape.
- Check access on site. Parks may close at night and private roads are only excluded when they are tagged in OpenStreetMap.
FAQ
Why is the route longer than the shape?
Streets rarely follow curves and diagonals, so the route steps along the grid. Ratios of 1.3 to 1.6 are normal.
Can I use my own drawing?
In the Cartograph app, yes: draw any outline with the mouse or a finger. This tool page offers the built-in shapes; the API accepts the same shapes.
Which ways are used on foot?
Streets, paths, steps and tracks, but never motorways or trunk roads, and nothing tagged access=no, access=private or foot=no.
Does it work for any city?
Any city you have an OpenStreetMap extract of. The quality depends on how dense and well-mapped the street network is.
Guide last updated:
For scripts and AI agents
- JSON API:
POST https://cartographrouteart.usefulweb.site/api/v1/calculate(same calculation as this page) - Interface description: OpenAPI 3.1 · AI guide: llms.txt
- MCP server (Streamable HTTP):
https://cartographrouteart.usefulweb.site/mcp· tool namecartograph_route_art
Example request
curl -s -X POST https://cartographrouteart.usefulweb.site/api/v1/calculate \
-H 'content-type: application/json' \
-d '{"shape":"heart","center":"47.145, 9.517","widthM":1000,"profile":"foot"}'