Route Foundry · Features

Every feature, and every limit next to it.

This is the full list. Each item describes behaviour that is implemented and covered by tests, and where something has a boundary, the boundary is written down here rather than discovered later on a hillside.

Planning

Four tools, and three ways to join two points.

Tap to build

Each tap on the map adds a point and joins it to the last one. The join follows roads and paths where a routing service knows them, or runs straight when you are off-grid — your choice, per session, and recorded per segment so one route can mix both.

Draw freehand

Route Pencil traces a line under your finger and simplifies it on release, for trails and tracks no router carries. A stroke that is too short to be a route produces nothing rather than a stray point.

Start where you mean to

A new route can start from where you are, from a place you search for, or from wherever the map is looking. On a first run — when the map has never been anywhere — it offers your location, so the first tap doesn't land in open water.

Seven activity profiles

Walk, hike, commute, road bike, gravel, MTB and motorcycle. The profile drives the routing request and the duration estimate, and it is stored with the route and carried into exports.

Three routing sources

Apple Directions when you are online; an offline Valhalla routing pack when one is installed and actually covers where you are; and manual straight lines, which work anywhere. If a routing service can't answer, the app says which of those three reasons it was rather than blaming your connection for all of them.

Points and their order

The map answers where. The point list answers in what order — and lets you change it.

Numbered

Every point wears its position in the route, on the map and in the list, counting from one. "Point 4" means the same thing on both surfaces, including for VoiceOver.

Reorder by dragging

Drag a point in the list and the route travels through it at its new position. Every join is recalculated when you do, because the way from A to C is not the way from A to B — keeping the old lines would draw a route down roads it never touches.

One undo step

A reorder is a single change to the document, so one undo puts the whole thing back. It is not a reorder followed by a run of separate recalculations to undo one at a time.

Honest refusals

A route with a gap in it will not be reordered, because doing so would weld its separate stretches into a line you never drew. A locked point refuses the reorder rather than being quietly unlocked by it. With no connection, the reorder still completes — joined straight, and it tells you which stretches those are.

Distance from the start

Each point shows how far along the route it sits, measured along the line actually drawn rather than as the crow flies — so a switchbacked climb reads as the distance you will cover.

Editing

Segment-local edits, so changing one stretch never redraws another.

Move, split, delete

Drag a point with a live preview; its routed neighbours recompute on release. Split a segment exactly where you tap. Delete a point, a segment or a whole section.

Lock what you like

A locked point or segment is not touched by recalculation, by Route Pencil, or by an edit somewhere else in the route. Locks are honoured by refusing an edit that would break them, not by silently ignoring the lock.

Reverse, clear, straighten

Reverse travel direction — instructions that would now be wrong are dropped rather than mirrored into nonsense. Replace a routed segment with a straight line. Clear the route while keeping your waypoints, which are content about places rather than route structure.

Undo that behaves

One undo step per action, including for multi-touch gestures: a drag is one entry, not one per touch sample. Undo and redo never lose a change to a background save that started before them.

Route Doctor

Finds duplicate points and needless density in imported files and offers to repair them, with the change described before you accept it.

Waypoints with meaning

Water, food, viewpoint, camp, hazard, parking, repair — with notes, tags, expected arrival and dwell time, and symbols that survive a round trip through GPX and TCX.

Elevation

A route you draw has no height information of its own — a routing service returns a line on the ground and says nothing about the ground. Route Foundry fills that in.

A real profile

Ascent, descent, highest and lowest points, and a profile chart, for routes you plan as well as ones you import. The route is sampled evenly by distance against a terrain model (Open-Meteo, using Copernicus DEM data) — no account and no API key.

Fetched once, then offline

The profile is stored with the route, so the chart, the climb figures and every export work afterwards with no connection at all.

Climb you can trust

Ascent is measured from a smoothed, threshold-filtered profile, so a noisy GPS track doesn't report thousands of metres of climbing that never happened on a flat ride.

Your measurements win

A point that already carries its own altitude — from a recorded track or an imported file — keeps it. A terrain model's estimate of the ground never overwrites a real measurement.

In the exported file

The profile is written back onto the points on export, so GPX <ele>, TCX AltitudeMeters, KML's third coordinate and FIT's altitude field all carry it to whatever device you hand the file to.

Switchable off

This is the one feature that sends where you are going to a third party, so it has its own switch in Settings. Off means nothing is sent and those figures stay empty — see the privacy policy.

Recording

For the ride you did, as well as the one you planned.

Crash-safe by construction

Every point is written as it arrives. A session is offered back at the next launch until it has actually been saved or discarded — including one that was stopped and then lost before it could be saved.

Pause, resume, mark

Pause and resume without ending the session, and drop a waypoint with one tap while recording.

Saved as what it was

Saving asks which activity the track was, rather than assuming, and the result becomes an ordinary route you can edit and export.

Formats

The file is the product. Every picker in the app is built from the formats it actually implements, so it cannot offer one it can't produce.

FormatImportExportNotes
GPXYesYesTracks (one segment per route section), waypoints with symbols, elevation, authored cues as a route
TCX CourseYesYesCourse points round-trip as cues
KMLYesYesOne Placemark per section; waypoints as Points; height in the third coordinate
FIT CourseYesYesWritten from the published FIT protocol, not Garmin's SDK
Route Foundry (.routefoundry)YesYesLossless project format — points, segments, creation modes, cues, elevation and provenance — SHA-256 verified

Not supported: KMZ, GeoJSON and PMTiles. They are not implemented, and they are not offered anywhere in the app.

Every import is validated

A malformed file is refused with the reason, not imported as a half-route. Archives are bounded before anything is allocated, so a hostile file can't exhaust memory.

Nothing is lost on the way out

Provider manoeuvres, your own cues, waypoint types and the elevation profile all leave with the file. The native format is a lossless project backup, verified by checksum.

Offline

Airplane mode leaves planning, editing, import, export and navigation working.

Bring your own map pack

Offline maps come from raster MBTiles files you already have. The app never bulk-downloads tiles from anyone's service — a promise it keeps by having no code that could.

Coverage is never assumed

A pack that declares no bounds covers nothing, rather than being treated as covering the world. "Offline ready" is answered for the route in front of you, not for the app in general.

Offline routing packs

A Valhalla routing pack enables rerouting with no connection — and is only offered once the engine has actually accepted its tiles, not because a file with the right extension was installed.

Drawing works everywhere

With no connection at all, points join with straight segments you can reshape later, and the route saves, exports and navigates exactly like any other. One tap keeps you in that mode for the session instead of asking at every point.

Saving and data safety

There is no Save button, and losing work is treated as a defect.

Autosave with a ceiling

Edits are coalesced so a finger movement doesn't rewrite the whole route, but never held longer than ten seconds — so continuous work reaches disk on a known schedule instead of living in memory.

Files, not a database

Each route is a file in the app's own directory. The SQLite index exists only to draw the list quickly; if it is ever lost, the library is rebuilt from the files at launch.

Reconciled at launch

Routes on disk that the index doesn't know about are recovered, and index rows pointing at files that are gone are dropped — with a report of what changed.

Privacy and permissions

The short version is on this page; the privacy policy and the GDPR page are the long one.

No account, no analytics, no tracking

There is nothing to sign up for, no identifier tying your requests together, and no analytics or advertising SDK in the app at all. Deleting the app removes its data from your device.

Location is asked for at the point of need

Never at launch: the app asks when you press the locate button, start a route from where you are, or begin recording. Planning, editing, importing and exporting all work if you decline.

Three features reach a server

Smart Routing and place search (Apple's mapping services) and the elevation lookup (Open-Meteo). Each can be turned off, and none of them carries anything identifying you.

Diagnostics stay yours

A diagnostics report is generated on request, shown to you, and shared only if you choose to send it. Nothing is transmitted in the background.

Requirements and limits

What the app needs, and what it deliberately does not do.

Requires

An iPhone running iOS 18 or later. iPhone only — iPad, Apple Watch and CarPlay are out of scope and not shipped in a half-adapted form.

Deliberately not included

No tile downloading, no social feed, no cloud sync, no account, no subscription telemetry. KMZ, GeoJSON and PMTiles are unimplemented rather than half-implemented.

Waypoints don't constrain routing

A waypoint marks a place; it does not force the route through it. Add a point where you want the route to go.

Not a substitute for judgement

Route Foundry is a planning and guidance aid. Roads, trails and conditions change, and map and routing data can be wrong or out of date. Obey traffic law and signage, and do not operate the app while riding or driving.

Something here not behaving as described?

That is a defect, and we would like to know. Support is email, answered by the people who built the app.