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.
  • 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.

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", 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.

The advanced panel adds optional nudges - avoid busy roads, prefer cycle routes, avoid unpaved, allow ferries, allow steps and stairs - which are passed straight to BRouter. Each one applies only where the chosen profile supports it.

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

Set just a start point (and nothing else) and a Round trip (loop) tickbox appears. Ask for roughly the distance you fancy and PitStopper spins a loop that leaves from and returns to that point - handy for "about 40km from the door" rides. Shuffle for a different loop of the same distance.

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.

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 with three settings. 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.

The control only appears on profiles where it makes a real difference, and it hides the settings that wouldn't do anything - so you won't see it at all on Gravel or the motor profiles, and Mountain biking offers Flatter but not Direct. That's deliberate: a control that silently does nothing is worse than no control.

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).