Recording a track
Step-by-step: sign in, pick a trail system, record a grooming pass and make sure it uploads.
This page walks through one grooming pass with the TrailHUB Tracker app, from sign-in to confirming the Groomed update on the website.
#Before you go out
- Install the app (iOS via TestFlight or a development build; Android via a development build). It is not in the public app stores yet.
- Allow location access. The first time you start tracking the app asks for location permission. On iOS, choose Allow While Using App, then later grant Always in Settings → Privacy & Security → Location Services → TrailHUB Tracker if you want recording to continue with the screen locked. Also make sure Precise Location is on.
- Turn on Location Services for the phone. The app refuses to start tracking if they are off.
- Charge the phone. The app uses the highest-accuracy GPS mode continuously.
- Check you are a manager of the trail system in the web app (owner or trustee). Only those systems appear in the app, and the server discards tracks from accounts without permission.
#Sign in
- Open TrailHUB Tracker.
- Enter the email and password of your TrailHUB account and tap Sign In. This is the same login as trailhub.org. Google or other social sign-in is not available in the app.
- If sign-in fails, the error appears above the form. Forgot Password? does nothing yet; reset your password on the website.
You stay signed in between launches. Use the logout icon in the top-right of the home screen to sign out.
#Choose a trail system
The home screen shows Available Trail Systems: N and a Select Trail System dropdown.
- If your account has a default trail system, it is selected automatically; otherwise the first one in the list is. A short confirmation ("Selected trail system: …") appears at the bottom.
- Open the dropdown to pick a different one. You can only change it while not tracking.
If the dropdown says No trail systems available, your account does not own or trustee any system. Ask the system's owner to add you in the web app.
#Record the pass
The status row shows Status: notTracking and GPS: N/A or the current accuracy in metres (green icon when a fix is available). An accuracy of 5 m or better is typical outdoors; wait for a reasonable number before you start if you can.
- Tap Start Tracking. Status changes to tracking. Positions are recorded whenever you move about 5 m, and the GPS readout refreshes every 5 seconds.
- Keep the phone on and the app in the foreground where possible (see Known limitations).
- Groom as usual.
- When you are done, tap Pause. Status changes to paused and two buttons appear: Resume and Stop & Save.
- Tap Stop & Save.
Avoid Resume in the current beta: it starts a new line and discards the points recorded before the pause, so only the final segment would be credited. If you need a break mid-pass, simply leave the app tracking, or Stop & Save and start a second track afterwards; both tracks will be analysed separately and each posts its own Groomed update.
If you tap Stop & Save with no recorded points (for example GPS never got a fix), nothing is saved.
#Upload
After Stop & Save the app:
- Writes the track to the phone as a GeoJSON file (
track_<user>_<timestamp>.geojson). - Adds it to the Unsynced Tracks list.
- If the phone is online, uploads it immediately to TrailHUB storage, records it in the database and removes it from the list.
If you are offline, the track stays under Unsynced Tracks (N) with its creation time and trail system ID. It uploads automatically when connectivity returns while the app is open. You can also:
- Tap the sync icon on a track to upload it now ("Syncing track…", then "Track synced successfully" or "Track sync failed. Will retry later.").
- Tap the red delete icon to discard a track you do not want analysed, or Remove All to clear the list. Both ask for confirmation and cannot be undone.
Because the unsynced index is only saved when you remove a track, it is best to keep the app open until the list is empty rather than closing it with tracks pending.
#What happens next
Within a few seconds of the upload, TrailHUB:
- Confirms you have permission on the chosen trail system.
- Compares the track with every trail in the system and finds those with more than 10% of their length inside a 10 m band around your track.
- Posts a Surface Conditions: Groomed update for those trails, expiring in 24 hours, without notifying subscribers.
- Recompiles the public map.
Details are in How coverage is calculated.
#Verify on the website
- Sign in at trailhub.org and open the trail system.
- Open the Updates menu. A new Surface Conditions update listing the covered trails with the condition Groomed should be there, created by your account.
- On the public map and trail list, each covered trail now shows the groomed icon.
If nothing appears after a minute, see the troubleshooting table below.
#Troubleshooting
| Problem | Likely cause | What to do |
|---|---|---|
| "Please select a trail system before starting tracking" | No system selected | Pick one in the dropdown |
| "Location permission is required for tracking" | Permission denied | Allow location for the app in the phone's settings |
| "Please enable location services to start tracking" | Phone-wide Location Services off | Turn them on |
| GPS stays N/A | No fix yet, or permission denied | Go outside, wait, check permissions |
| Track uploaded but no update appears | Less than 10% of every trail covered; or your account lacks permission on that system (track is deleted server-side); or trails are stored as MultiLineString | Check coverage expectations; confirm you are owner/trustee; see the coverage page |
| Track stuck in Unsynced Tracks | Offline, or upload error | Reconnect and tap sync; keep the app open until the list is empty |
| Points missing from the start of the pass | Resume was used | Avoid Resume; use Pause → Stop & Save |