Route Planning Beta

The route planner lets you build a route inside PitStopper instead of importing one from another app. Drop a start and finish, add stops in between, and PitStopper snaps a sensible line to roads or paths for your chosen activity - then finds the POIs along it. It's deliberately simple: a genuine alternative to juggling a separate planner like Komoot for most rides and walks, without trying to do everything they do. Routing is powered by BRouter, the same open-source engine used by many offline navigation apps. It runs on PitStopper's own servers, with the public BRouter service kept only as a fallback for when ours are unreachable.

Starting a plan

Open the planner from Plan a route on the home page, or from Route → Plan a route once you're in the app. If you already have routes loaded, PitStopper asks first whether to add to this project (keeping what you have) or start a new project. The sidebar gains a Plan tab and the map cursor arms for placing points - planning is a tab rather than a takeover, so you can flip back to the POI panels without abandoning the route. Press Done at any time to finish - PitStopper keeps the route you built, searches for POIs along it, and hands you back to the normal view.

Waypoints

  • Add points - click the map to set the start, then the finish, then any stops in between. You can also type an address or place name straight into any of the boxes: they suggest matches as you type.
  • Search - the Search button finds an address or landmark and drops it in as a stop. Empty boxes also offer the places you've used recently.
  • Add a stop part-way - the + on the connector between two rows inserts a stop at exactly that leg, rather than at the end of the list. Clicking the route line on the map does the same thing and leaves the route exactly as it is.
  • Move & reorder - drag a point on the map to move it, or reorder and remove points in the list. Every change reroutes instantly.
  • Reverse - swaps start and finish and routes again rather than just drawing the same line backwards, because one-way streets and turn restrictions mean the way back is often not the way out.
  • Undo / redo - step back and forward through your edits.

The start and finish rows carry the same green and red flags the map draws, so the list and the map read as one thing. The live distance, total climb and estimated time update under the panel as you go - and the gap between each pair of stops shows that section's own distance, climb, descent and riding time, so you can see at a glance how the day divides. Move the mouse over a gap and the section controls appear in its place.

The planner waypoint list: a green start flag, a blue via dot and a red finish flag, with each gap between rows showing that section's distance, ascent, descent and riding time.
Between two stops the planner shows that section's own distance, climb and time; move the mouse over the gap and the section controls appear instead.

Name a stop - the small gear on a row (it appears as you hover) opens that stop's settings, with a name box. The box in the row itself is a search box, so this is where a label like "Coffee stop" lives. Keep it short: the name travels into the exported GPX and navigation apps like Cruiser and Locus announce it aloud when you arrive. A stop without a custom name exports as a quiet route point instead - nothing is announced.

A waypoint row with its settings panel open below it: a Name field containing Coffee stop, and a hint that navigation apps read the name aloud.
The gear on a stop opens its settings: give it a short custom name and navigation apps will announce it.

Add a POI while planning - right-click the map and choose Add POI Here to pin a lunch spot or meeting point without leaving the planner. The pin attaches to the plan and is still there when you press Done.

Adding a stop without changing the route

Click the route line itself, and the stop you add lands exactly on it - and the route doesn't move.

It helps to know that a planned route holds two quite different kinds of point. The line is drawn from thousands of anonymous geometry points describing its shape; you can't grab those. The stops - the start, the finish and the vias between them - are the handful you placed yourself, and those you can drag. Adding a stop normally creates a brand new one, and the whole plan goes back to the router to be worked out again.

Usually that's exactly what you want. But when you already like a route and simply want a handle on it, rerouting is a risk: the router is free to return a slightly different line through the same points - a different lane at a junction, or a section you'd already nudged into shape. You asked for a handle and it moved the furniture.

Clicking the line avoids that completely. The point you're adding is already on the route, so the route cannot change; there is nothing left to work out. Think of the line as a piece of string laid on the map: putting a pin in where the string already lies doesn't move the string. Then you move the pin, and only that move reroutes.

So one risky step becomes two safe ones - click the line to place the stop (instant, nothing shifts), then drag it to make the change you actually meant.

A menu opened over a planned route on the map. Its "Add a via point here" entry is highlighted and carries a second line reading "The route already goes through here, so it will not change".
Click the route line itself and the menu says the route will not change. The stop lands exactly on the line, so there is nothing to reroute.

The stop slots into the section you clicked and takes its number from that position, so the list and the map still read in order. If you had alternatives on screen, they're cleared: they were worked out without this stop and no longer pass through it. Any later edit brings a fresh set back.

Activity & profile

Routing profile is a single grouped menu - Foot, Cycle and Motor - and picking a row sets the activity and the profile together: Hiking or Trekking on foot; Road cycling, "Road, quieter", "City & commuting", Trekking, Gravel or Mountain biking on a bike; "Car, fastest", "Car, economical" or Moped under Motor. Each row carries a short description of what it optimises for. The menu stays folded down to a header showing the profile you're on, opens when you click it, and folds away again as soon as you choose. The activity matters beyond the roads picked: it also sets the default average speed and the terrain model behind the time estimate.

City & commuting is worth knowing about if you ride in town. It judges every road and path by what it's actually made of - surface, smoothness, how rough the track is - rather than by what kind of road it's labelled, and it's deliberately cautious about barriers and reversible one-ways. It'll take a rougher way to get you off a busy one. It takes a little longer to work out a route than the others. The profile is utack's streetbike_touring.

The advanced panel adds optional nudges - hills, scenic preferences, and a handful of tickboxes - which are passed straight to BRouter. Hover any of them to see what it does. Which ones are available depends on the profile you've picked, because each profile understands a different set; see the table under Which settings work where.

Alternatives & compare

The planner offers up to three options for the same points - the main route plus two alternatives - drawn in different colours. Click a chip, or the dashed line on the map, to make that option the active route. Open Compare routes to see them all on one elevation chart with a table that highlights which is shortest, which climbs the least and which is quickest, plus a rough energy cost for a ride or a walk. All the options use the same profile: BRouter finds the cheapest route first and then works out each alternative by re-running the search while penalising the roads already used, so where there's no reasonable parallel road an alternative can come back nearly identical to the main route.

Finding alternatives costs two extra routing requests every time you move a point. If you only ever want the one line - or you're on a slow connection - turn Find alternative routes off in the advanced panel. It's on by default.

Round trips

Once there's a start point, a two-way switch appears: To a place or Round trip. They're different plans, not one plan with an option on it - a round trip has no finish, because it comes back to where it began. Ask for roughly the distance you fancy, anything from 5 up to 300 km, and PitStopper builds several loops from that point.

A two-way switch under the start point: To a place and Round trip, with Round trip selected, and the row below it reading Pass through (optional).
Choose what kind of route this is. On a round trip the second row becomes somewhere to pass through, not a finish.

Switching between the two keeps any point you've already placed - it just changes what that point means, from a finish to somewhere the loop goes past. On a round trip the day controls disappear too: a loop ends where it started, so there's no next day to begin from it and nothing a day-split would separate.

The Round trip panel: a ticked Round trip (loop) box, an Approx. distance slider reading 100 km, Generate loop and Shuffle buttons, and two hints about setting a start point and adding a second point for the loop to pass through.
Ask for roughly the distance you fancy. Place a second point as well and every loop is built to pass through it.

The distance is a target, not a promise. Roads decide where a loop can actually go, so rather than stretching one route until it hits your number, PitStopper offers several and tells you what each one really came out at. Pick the one you like the look of.

A row of loop options, each in its own colour, showing the distance each loop actually came out at. The one closest to the requested distance is highlighted and selected.
Every loop it found, with the distance it actually came out at. The closest to what you asked for is picked first; hover one to see its climbing.

Each option is drawn on the map in its own colour, and they behave exactly like route alternatives: click one to use it, press the × to drop one you don't want, or open Compare routes to put their elevation profiles side by side. Ascent matters more than distance on a loop - two 100 km rides from the same door can differ by hundreds of metres of climbing.

Without a second point placed, the options head off in different directions - one per compass point - and at slightly different sizes, so some come back a little under the distance you asked for and some a little over. That spread is deliberate: "a bit further than I said, but it goes the pretty way" is a real answer.

Several cycling loops drawn over the Peak District around a green start flag near Sheen, each in a different colour, all returning to the same point.
100 km loops from one Peak District campsite - same start, genuinely different rides.

Making the loop go somewhere. Place a second point as well as the start and every loop is built to pass through it - a cafe, a col, a friend's village. The loop still comes back to where it began; the second point just decides which way it heads out. A loop through a point can't be shorter than going out to it and back, so if you ask for less than that PitStopper says so rather than quietly handing you something longer.

Shuffle turns the whole set of directions, so a second press explores the compass points between the first five rather than redrawing them.

Turn-by-turn navigation

Turn-by-turn (Cruiser/Locus) in the advanced panel attaches BRouter's own turn cues to the route, so the exported GPX carries directions that apps like Cruiser and Locus Map understand - every other app ignores them and sees an ordinary, valid GPX. It's on by default, costs one extra routing request per route, and the cues are re-fetched after each change so they stay in step with the line you can see. You can tick it before there's a route and it applies as soon as there is one. When you press Done, the finished route behaves exactly like an uploaded GPX - you can search POIs, read the elevation profile, edit the track, and export or save it.

The Navigation data panel (View menu) lists the cues as a turn list, showing each step's own distance and time - "146m, 0:17" - the way Cruiser and Locus present it. Stops you named appear in the list by name.

Road names on the turns

Each turn says which road you are turning onto: "Turn left onto Stadium Way" rather than just "Turn left". The names travel with the exported GPX, so they show up in Cruiser and Locus Map too.

A turn-by-turn list where each step names its road: Slight right onto Scours Lane, Turn left onto Stadium Way, Turn right onto Wigmore Lane, each with its own distance and time.
The road name comes from OpenStreetMap, not from the router, which does not carry names.

The names do not come from the routing engine, which reads only the map details it needs to choose a way and never sees a street name. They come from PitStopper's own copy of OpenStreetMap - the same one that works out your surface and warns you about one-way streets - looked up once when the route settles rather than on every drag.

Not every road has a name. Farm tracks, service roads and unclassified lanes often have none in the map, and where that is so the turn simply reads "Turn left", as before. PitStopper will not borrow the name of the road beside it: a confident wrong street name is far worse than none. If our servers cannot be reached the turns keep working and stay unnamed.

Turn cues are pinned to the exact track points they were generated for, but editing no longer costs you them: Edit Track replaces just the edited section - a snapped edit gets fresh turn cues for its new roads, and everything untouched keeps its data exactly. Splitting a route keeps the cues on both halves. Only reversing still has to drop them (a left turn ridden backwards is not a right turn), and it says so first.

Routing one section differently

Sometimes one stretch of the route needs different rules from the rest. Hover the gap between two stops in the list and a small link icon appears; click it and a control opens with three choices for just that section, plus an × to put it back on the main profile:

  • Straight line - joins the two points directly, ignoring roads. For where there is no road at all: a beach crossing, an unmapped path, open moorland.
  • Any path - routes the section over anything mapped, ignoring access rules. For where a road exists but your profile refuses it - a ferry terminal, a permissive track. Mind that it really does ignore access: under a motor profile it can put a car down a footpath, so check the section on the map.
  • Profile - routes the section under a different BRouter profile: gravel through the forest stretch of a road ride, walking through the old town. Pick from the menu; the chosen name becomes the section's label.
The section control expanded between two waypoints: Straight line, Any path and Profile buttons with a small x, and an open menu listing routing profiles grouped by Foot, Cycle and Motor.
The section control between two stops: a straight line, Any path, or a different routing profile for just that section.

Each special section is drawn distinctly on the map - orange dashes for a straight line, blue dots for Any path, purple for a different profile - and hovering the control highlights exactly the stretch it changes. In the exported turn-by-turn GPX, straight-line and Any path sections are marked with <src> tags (Cruiser's own convention), so apps that understand them can colour and protect those sections.

A planned route on the map with its first section drawn as a purple dashed overlay, and the sidebar showing that section folded to a small purple Gravel label.
A section routed under the Gravel profile: purple on the map, a quiet Gravel label in the list.

Straight lines in detail

There are three ways to add a straight line:

  • Between two waypoints you already have. The section control above - click Straight line; click again to put it back on roads.
  • Between two spots on your route. In the advanced panel, choose Straight line between two points, then click the two places on your route you want joined. PitStopper adds the waypoints for you, in the right order, and makes the section between them straight - you don't have to place them first.
  • Straight from the map. Right-click anywhere on your route and choose Straight line from here, then click the far end. A dashed preview follows your cursor so you can see the line before committing, and ESC cancels. Clicking the far end first is fine - the section is worked out along the route, not from the order you clicked.

On a loaded GPX, this changes the track

The right-click option also works on a route you have loaded rather than planned - but there the two clicks have to rewrite the track itself, because a loaded GPX has no waypoints to flag. The section between them is genuinely replaced by a direct line, so distance and climb update to match, the original is shown dotted alongside, and Undo restores it exactly. If the route carries turn-by-turn cues you are warned first, since those cannot survive a geometry change.

Each straight section is marked on the map with Start of straight line and End of straight line info points, added when you press Done, so months later it's clear the detour was deliberate rather than a glitch. Those notes travel with the route into the exported GPX and the phone app.

Elevation runs as a slope across a straight section. If a route is entirely straight lines there's no elevation data to show at all, so no profile is drawn rather than a misleading flat line.

Avoiding places

Two ways to keep the route away from somewhere:

  • Avoid a point. Right-click the map while planning and choose Avoid this point. A red circle appears and the route goes around it. Good for a specific junction, level crossing or a road you know is horrible.
  • Avoid an area. In the advanced panel, choose Avoid an area and draw a shape - click to add each corner, then double-click or press Enter to close it. Better for a whole district: a closed park, an event route, a flooded lane, a town centre on market day.

Click any red circle or shape to remove it. The route recalculates each time.

If an avoid area covers your start, finish or one of your stops, routing can't succeed - PitStopper says so directly, and the fix is either to remove the shape or move the point outside it.

Hills

The advanced panel has a Hills control. Balanced is normal routing. Flatter asks BRouter to treat climbing as expensive, so it will happily add a bit of distance to avoid a hill - on a rolling test route that cut the climbing by a quarter on Trekking and by over a third on the quieter road profile, for about 5% more distance. Direct does the opposite: it ignores elevation entirely and takes the shorter line, hills and all.

Hillier is the one that needs explaining, because it isn't quite the opposite of Flatter. Nothing in BRouter rewards climbing - a route can only ever be charged for height, never credited with it - so no setting can go looking for hills. What Hillier does is raise the amount of climbing that's free, which stops the router detouring around every rise. On a Lake District route that took a ride from 413 m of ascent to 760 m, simply by no longer avoiding the direct way over.

The control only shows the settings that would do something on your profile. Gravel is the interesting case: it can't use the usual mechanism for Flatter at all, so it uses its own - and gets both Flatter and Hillier, but not Direct. On a Lakes route Gravel's Flatter cut the climbing from 1,002 m to 864 m.

Scenic preferences

The Prefer row asks for a nicer ride rather than a faster one: Water follows rivers, canals and lakes; Woodland routes through trees where there are any; Quiet roads weighs estimated traffic; Away from towns goes round built-up areas instead of through them; Less noise avoids roads the data marks as noisy, like those alongside motorways. They combine, so a route can follow the river and stay out of town at the same time.

They cost distance, and they should - on one Thames-side test route, asking for water added about a fifth to the length. Woodland is the one that most often appears to do nothing, and usually that's honest: if there's no wood to divert into, or you're already riding through one, there's nothing for it to change.

Riding in the wet, and unpaved tracks

Riding in the wet tells the router to treat loose, rough and cobbled surfaces the way they actually are after rain - slower, and less appealing than the tarmac alternative. It's offered on City & commuting and Gravel, the two profiles that model surface conditions.

Prefer unpaved tracks is Gravel's, and it's the opposite of what most routers do: it actively seeks out tracks and unsealed lanes. That often makes the route shorter, because tracks cut straight across where the road goes round - on a Dales test route it came down from 21.1 km to 17.4 km.

Which settings work where

Each routing profile is a separate piece of work by its author, and they don't all model the same things - so an option that transforms a route on one profile may be meaningless on another. Rather than pretend otherwise, PitStopper greys out the ones your profile can't act on and tells you which profile is ignoring them. This is the full picture:

SettingRoad cyclingRoad, quieterTrekkingGravelMountain bikingCity & commutingHiking
Hills
Flatter
Hillier
Direct
Prefer
Water
Woodland
Quiet roads
Away from towns
Less noise
Options
Avoid busy roads
Prefer cycle routes
Allow ferries
Allow steps and stairs
Riding in the wet
Prefer unpaved tracks

The Car, fastest, Car, economical, Moped profiles offer none of these - they don't model any of it. A setting that a profile can't act on is greyed out in the panel rather than hidden, and says which profile is ignoring it.

Rider profile

Under the speed box, Rider profile lets you enter your weight, the bike's, anything you're carrying, and roughly how fit you are, then tick Use my details for timings to apply them. Without it, timings assume a 90 kg rider putting out 100 watts, which runs around a third slow for a club rider. Choosing a fitness level fills in a matching average speed, which you're still free to edit - riders vary by the day and by how long the ride is, and you know that better than we do.

It's saved as a preference, so you set it once rather than for every route. It's a cycling feature: the underlying model has no effect on walking times or in a car, so the section is hidden there. Note that it changes the timings only - your weight and power never change which roads the route takes.

Speed & event time

The advanced panel carries your average speed, which is what the time estimate in the stats line is based on - the estimate accounts for climbing, so it's not simply distance divided by speed. Set an event date and time as well and every POI along the route gains a predicted clock time, so you can see roughly when you'd reach that cafe or water stop.

Exported GPX files leave the track untimed by default. A timed track is how most sites recognise a recorded ride, so a planned route carrying times can be imported elsewhere as though you'd already ridden it. If you do want the schedule in the file, tick Include estimated times on the track in the export dialog.

Feedback welcome: route planning is in beta. We're keeping it simple on purpose, but if something's missing or awkward we'd genuinely like to know - it shapes what we build next. Get in touch.

Editing the Track Beta

Track editing lets you make small adjustments to a route you've already loaded - nudge the line onto a road, past a specific POI, or tidy a stretch where the recording drifted - without leaving PitStopper. It's for minor tweaks, not planning a route from scratch, and it edits the currently active route.

Turning it on

  • Open editing from the Route menu (Edit Track) or the pencil button on the map toolbar.
  • Zoom in - the line only responds from a reasonably close view, so you can place points accurately. While you're too far out the toolbar says Zoom in to edit instead of the usual hint.
  • If the route carries turn-by-turn cues, they survive the edit: only the edited section is replaced - a snapped edit gets fresh turn cues for its new roads, a freehand or straight-line section simply has none - and everything untouched keeps its navigation data exactly, foreign app extensions included. Undo restores the original section byte for byte.
  • Click Done (or the pencil again) when you've finished.

Making an edit

  • Hover or tap the track to summon a handle at the nearest point, then drag it to where you want the route to go.
  • On release, the stretch either side of your grab is re-routed through the new position. The affected span widens with how far you pull, so a bigger diversion bends smoothly instead of making a sharp spur.
  • Grab the very start or finish point to move that end of the route - useful for extending or trimming a recording that began late or ran on past your finish.

Snapping to roads

With Snap to roads switched on (the default), each edit follows real roads and paths using the BRouter routing engine, and the new section picks up real elevation automatically.

More on the blog: Nudge Your Route Onto the Coffee Stop: Track Editing (Beta).

  • Route type - choose Touring, Road bike, Road (low traffic), Gravel, Mountain bike or Walking so the snapped path suits your ride.
  • Snap off - nudge the line freehand as a straight segment (handy off-road, or when you want an exact line).
  • Live-snap - the line follows the roads continuously as you drag, rather than only snapping when you let go. It also puts a small before/after elevation chart above the toolbar for the stretch you're moving, with the length and climb that this one edit would change.

Seeing what changed

  • The toolbar shows the running change in length and climb since you started editing (for example +0.14 km, +4 m), in your chosen units.
  • The original path of the sections you've changed stays on the map as a dotted line.
  • Compare flashes up the whole original track (in amber, with the current one dimmed) so you can eyeball the before and after.

Undo & revert

Every edit is undoable one step at a time ( or Ctrl/Cmd+Z), and Undo all reverts everything you've changed in the current editing session in one go.

Good to know: a snapped edit takes its elevation from BRouter's own 3-D coordinates - there's no separate elevation lookup - while a freehand edit only interpolates between the two ends, so keep snap on if you care about accurate climb figures. Your edits are baked into the route and saved with the project; the dotted original and the undo history are for the current editing session only, so once you save and reopen, the edit is permanent.

One related tool doesn't need edit mode at all: right-click the track and choose Straight line from here to replace a winding section with a direct line - see Straight lines (beelines).

Recording Quality

A GPS recording is not really a line. It is a few thousand separate fixes, each one a little off, and PitStopper joins them up with straight lines to make your route. Two things then pull the distance in opposite directions: the fixes wobble either side of the road, which adds; and the straight lines cut the corners off bends, which takes away. Recording Quality shows you the result, and where your device kept its own total, what that says instead.

A panel headed Recording quality listing points recorded, the distance measured from those points, what the device recorded, and the difference between the two.
What the recording says, and what the device that made it says. The gap between the two is GPS wobble.

Where to find it

  • Route menu → Recording Quality, for whichever route is active.
  • It also appears by itself on the import summary, but only when there is something worth saying - see the device figure below.

What the numbers mean

  • Points recorded - how many fixes the file holds. A device logging once a second builds up a few thousand on a short ride.
  • Measured from those points - the distance PitStopper shows everywhere else. It is the sum of the straight hops between every pair of fixes.
  • Your device recorded - FIT files only. Your bike computer keeps its own running total, often from a wheel sensor, and always from something better than joining up raw coordinates. This is usually the more trustworthy number of the two.
  • Difference - the gap between them, whichever way round. On a clean ride it is a fraction of a percent and can fall either side; through trees, between buildings or in a valley the wobble wins and the coordinates read long.
  • Obvious errors found - fixes that are plainly wrong rather than merely imprecise: a stray one thrown far off the road and straight back, a repeat of the one before it, or a run of them wandering about while you stood still at a cafe.
Nothing here changes your route. This panel only measures; it does not move a single point. The obvious errors it lists account for very little of any difference - the rest is the fine wobble either side of the road and the corners lost between fixes, and separating those from the road itself needs more than counting.

Matching it to the roads: track to route

This is PitStopper's track to route converter. If you came looking for how to convert a GPX track to a route, snap a GPS track to the roads, attach a track to the road network, or do map matching on a recording, this is the tool. It reads GPX and FIT, and what it writes is a navigable GPX that Cruiser, Locus Map and other apps understanding navigation extensions can follow.

What it converts is the frame of reference. A track is a list of positions: it knows where you were and nothing about where that is. Once every point sits on a known road, the line can be described in the road network's own terms, and the turn instructions, road names, surface and more honest distance all follow from that one change rather than being four separate features.

Two points of precision. It produces a navigable track rather than a GPX <rte>, keeping the shape of your ride instead of reducing it to a few waypoints. And it is not a router: nothing is recomputed, so the line stays exactly where your track went, which is what lets it handle a ride no planner would ever suggest.

PitStopper offers this when you import a recording, so you may meet it before you go looking. It works out whether a file was recorded or drawn from the file itself: a FIT file states whether it holds an activity or a course, a heart rate or power reading can only have been measured, and most tools write their own name into the file. Where nothing settles it, the spacing and timing of the points do. It stays quiet unless it is fairly sure, so a route you drew is never mistaken for a noisy trace.

Measuring the problem is one thing; fixing it is Route → Track to Paths/Roads, or the same entry in the sidebar's "..." menu. PitStopper looks up the paths and roads around your route in its own copy of OpenStreetMap, works out which ones you actually used, and redraws the line along them. That removes the wobble and puts back the corners, so the shape is cleaner and the distance closer to what your device recorded.

It works on drawn routes too, not only recordings. A route built in another tool has no GPS noise in it, but it was drawn against that tool's own map, which does not always agree with OpenStreetMap about where a road runs. Matching lines it up, and fills in the road between points the designer placed far apart.

  • Your recording is never altered. The matched version arrives as a second route beside it. Compare them, keep either, delete either.
  • It follows the track it was given. If you detoured to the shops, so does it, and if a road is now closed it does not know or care. Use Edit Track afterwards if you want to change the route rather than tidy the recording of it.
  • Your data comes with it - times, heart rate, power, temperature - and a stop stays a stop, so the ride still takes exactly as long as it did.
  • It tells you where it is unsure. Anywhere the matched line and your recording part company for a meaningful distance is listed, ranked, with a click to jump there. A single stray fix is not reported: that is noise, and a list full of noise is one you stop reading. See Differences worth looking at below.

Roads with no name in the map, or stretches with no road at all - a beach, a ferry, a path nobody has mapped - are left as they were recorded rather than forced onto something that is not there.

You can print the list. Export → Print Turn Instructions, or the link above the turn list, produces a sheet for a bar mount, a jersey pocket or the support car: every turn with the road it leads onto, the distance to it and the running total, and a small map of each junction so an instruction that reads ambiguously can be settled by looking. A map of the whole route sits at the top. Both sets of pictures can be turned off. The junction maps are drawn from the same tiles the app uses, so a long route takes a few seconds to prepare.

The road surface comes with it. The roads were fetched to do the matching and every tag OpenStreetMap holds came with them, so the Surface tab of the Navigation data panel now works for a matched track as well as an imported navigation file: a list of stretches with their distances, and a toggle to paint them along the route. Around 70% of a typical road ride has a surface recorded; the rest is shown as unknown rather than assumed, because an unsurveyed road is not the same as a smooth one.

When you have decided, the panel offers three ways out, each naming the route it acts on. Keep both takes neither and leaves the pair loaded. Delete the original removes the recording and hands your stops over to the matched version, re-measuring their distances along the new line and putting it back to an ordinary colour and width. Delete the matched one throws the match away and puts your recording back as it was. Both deletions can be undone, and either can equally be done by hand in the Routes section at the top of the sidebar.

Your points of interest are carried across as soon as the match is made, belonging to both routes at once rather than being copied. That is what makes deleting the recording safe: without it, the stops would go with the route they were found on.

Climbing may drop a little. A line rebuilt from fewer, road-anchored points counts less GPS wobble as ascent, so the figure falls even though the hills have not moved. Both figures are shown when they differ, and neither is offered as a correction to your climbing.

What was done at the foot of the result opens up an account of the work: road sections considered against road sections used, how many named roads that came to, anything the tidying pass dropped, how far the new line ever strays from yours, how much was kept as recorded because there was no road there, the point count before and after, and how long it took. A match takes about a second, so this is there partly to show that something happened, and partly for the ride where the result looks wrong and the question becomes what exactly was changed.

Differences worth looking at

Once the match is made, PitStopper compares the two lines properly and lists every stretch where they part company. This is the same engine that drives the standalone track comparer, running on the same settings, so a figure you read here is the figure that tool would give you for the same pair of files.

That matters because a matcher can go wrong in three different ways, and only one of them is easy to spot:

  • A different path. The two lines both go from A to B but not by the same route - the classic case being a parallel cycle track taken for the road beside it.
  • An extra section. The matched line goes somewhere your recording never went. This is the one that actually sends a rider wrong, so it ranks above the others.
  • A missing section. The matched line skips something you rode.

Each finding says where it starts, how long it runs on each line, how far apart the two get, and which OpenStreetMap ways each line is on - by name, where the way has one. "The original is on Harpsden Road" is a different answer from "the original is not on any mapped way", and the second is usually you leaving the path rather than the matcher leaving the road.

The list is ranked, not in track order. A long ride can produce twenty findings and putting them in the order they happen gives every one the same weight. Leaving a mapped road for open country outranks taking a different mapped road; going somewhere you never went outranks skipping something; a line running parallel to yours ranks down whatever its length; and a difference sitting on a gap in the recording ranks down too, because that is the receiver's doing. Lowest of all is your own track leaving the mapped paths - that is what a matcher is for, and ranking it high would bury the real faults under the feature working.

Each row carries a verdict - worth a look, maybe, or probably fine - and a number matching its pin on the map. Point at a row and the stretch lights up, drawn over both lines at once so you can see how far it runs rather than just where it starts; point at a pin and its row lights up. Clicking either flies the map there, and the panel stays open beside it.

What counts as a deviation

There is no threshold that reports every real difference and no noise, so rather than hide the one it used, the panel puts it on screen as three settings with the number each would find printed on it:

  • Close - 30 m apart for 40 m. Finds genuine short cuts and small parallel stretches, at the price of some GPS wobble.
  • Standard - 40 m apart for 100 m. The default, chosen so a wooded lane does not report as a wrong road.
  • Only big - 80 m apart for 200 m. Just the faults worth arguing about.

Seeing "Close 6, Standard 4, Only big 3" on the buttons is the point: the four findings in front of you are a threshold talking, not a fact about the ride. Switching is instant and costs nothing - the hard part of the comparison does not depend on the setting, so it is not redone.

One honest wrinkle. The figure in What was done saying how far the new line strays from yours comes from the matcher's own scorer, which asks a deliberately one-sided question: how far the matched line wandered off, since that is the only direction that is the matcher's fault. The list above asks a two-sided one and so can report more places. Both are shown rather than quietly picking the flattering one.

Turn-by-turn from your ride

Once a track has been matched, PitStopper also works out its turns, and the matched route exports as a turn-by-turn GPX that Cruiser and Locus Map can navigate. Each instruction names the road it leads onto - "Turn left onto Mill Lane" - read from OpenStreetMap at the junction itself. This is the answer to "I rode somewhere good, now give me directions for it".

Nothing is re-routed. The turns come from the shape of your own track, so a route no planner would ever suggest still gets proper instructions, and a deliberate detour keeps the turns that go with it. Where you left the road network altogether the turn is still given, without a road name, rather than quietly dropped.

  • The list is deliberately short. OpenStreetMap splits roads at bridges, surface changes and parish boundaries, and treating each of those as a turn would give about four instructions per kilometre. Following one wiggly lane would read as four separate turns onto the same road. A 53 km route comes out with 35 instructions.
  • Level of detail in the match panel makes it more or less fussy. The list rebuilds instantly, so you can watch the count move and stop where it looks like a list you would follow.
  • Show or hide the turn markers. A toggle at the top of the turn list takes them off the map, which is worth having once a matched ride has put sixty of them along the line. Pointing at a row still shows you where that turn is.
  • Roundabouts say which exit. Rather than a handful of small turns around the ring, a roundabout gets one instruction as you arrive: "Take the 3rd exit onto Miles Way". The exit number is written into the exported file too, in the form Locus Map and Cruiser expect, so the app you navigate with announces it as well. Small ones keep a plain left or right, because below about 15 metres across counting exits is a strange way to describe a turn. Mini-roundabouts, which OpenStreetMap records as a single point rather than a ring, are not numbered at all.
  • A turn marker tells you what it says, and can become a POI. Point at one and it reads the same sentence as the list, road name and all. Click it and a small panel gives how far into the ride it is, and an Add a POI here button - a junction is often worth remembering as well as navigating, and the POI lands on the turn's own coordinates rather than wherever you managed to click.
  • Correct anything you disagree with. Open Navigation data and each turn has a pencil to change the instruction and a bin to remove it. A junction the map draws as a sweeping bend, or a turn into a car park you would rather not be told about, takes one click.
  • Turns from an imported file cannot be edited, because that file's own track is re-exported exactly as it arrived. Editing the list would change what you see and not what you get.

Choosing the level of detail regenerates the whole list, so do that first and correct individual turns afterwards.

Planned routes

A route you drew in the planner, or downloaded from a tourist board, has no per-point times and was never recorded by anything. There is no GPS noise in it to measure, and the panel says so instead of inventing a figure.