Appendix: what's inside a PitStopper GPX file

A GPX file from PitStopper is not "plain GPX". It is a valid GPX 1.1 file that any app can open, but it carries extra information that the GPX standard has no place for: the route's line colour and width, turn-by-turn instructions, POI icons and colours, and estimated times. This page lists the additions, which export option controls each, and exactly where in the XML it goes - useful if you write your own tools, compare files, or wonder why another app shows more (or less) than you expected.

Will it break my app? No. Everything extra lives either in standard GPX elements (filled with values a particular app understands) or inside <extensions>, which apps that don't recognise it simply skip. Our exports are checked against the official GPX 1.1 schema in our tests.
The three-minute version: the standard parts coming in, each app's extras, and everything going back out. Watch it on its own page, with the transcript.
To see what a file of your own carries - every extension, which app it comes from, and anything PitStopper does not read yet - open it in the GPX inspector and converter. It runs in your browser, and can write the file back out with all of the additions on this page.

GPX in brief

A GPX file is XML: elements nested inside each other, in an order the GPX 1.1 standard fixes. These are the ones that matter here.

ElementWhat it isIn a PitStopper file
<gpx>The root that holds everything. Says which GPX version it is, which program wrote it (creator) and which extra vocabularies (namespaces) it uses.One per file
<metadata>About the file itself: its name, author, links, the time it was made.The route name, a link to PitStopper and the export time
<wpt>A waypoint: a single place, at a latitude and longitude, with an optional name, description and symbol. Not part of the line.Your stops, and distance markers
<rte> / <rtept>A route: an ordered series of turn points leading to a destination. How a device gets between them is up to the device.Not written - PitStopper always exports the line itself, as a track
<trk>A track: the line itself, as an ordered list of points to follow exactly.One per route
<trkseg>A segment of a track: one unbroken run of points. A track splits into segments where the line has a gap, such as a recording paused or lost signal.One per track (a navigation track kept exactly as you imported it keeps its own)
<trkpt>A track point: one point on the line. It can carry the same child elements as a waypoint.The route's points, and where turn-by-turn instructions sit
<extensions>A box for anything the standard has no element for, written in another vocabulary. Allowed in most elements; apps that don't know its contents skip it.Line colour, POI icons and colours, surface
Inside a waypoint or track point
<ele>, <time>Elevation in metres, and a time (UTC).Elevation from the route; estimated times if you ask for them
<name>A short name.The stop's name; on a track point, the name of a point you placed on the route
<cmt>, <desc>A comment, and a longer description.Your note and type for Ride with GPS; the category, opening hours and contact details. On a track point, <cmt> is the road a turn leads onto
<src>, <link>Where the data came from, and a web link.On stops: OpenStreetMap, and a link to the place on openstreetmap.org. On a route planned here: the planner that drew it, and beeline or osm on the point that ends a straight-line or any-path stretch
<sym>The name of the symbol to draw it with. The standard does not say which names exist; each app has its own list.Garmin symbol names on stops; turn instructions (left, roundabout_e3) on track points
<type>A free-text classification.The kind of stop (FOOD, WATER); via or shaping on route points you placed

Because the standard leaves <sym>, <type> and <cmt> open, much of what makes a PitStopper file useful is values other apps agree on, not new elements. Everything else goes in <extensions>.

Which app reads what

FeatureGaGarminLoLocus MapCrCruiserOsOsmAndOMOrganic Maps, CoMapsGSgpx.studioGVGPX Viewer
Track
Line colour✓nearest of 16✓✓✓✓✓✓
Line width✓✓✓✓
Transparency✓fully only✓†
Turn-by-turn instructions✓✓
Surface (paved, unpaved)✓
Waypoints (your stops)
Garmin symbol names✓†✓✓✓✓
Course-point type✓†
POI icon (OsmAnd names)✓
Marker shape✓octagon drawn as a circle
Waypoint colour✓✓✓
Compressed .gpz
Opens .gpz files✓✓✓
Draws our own icons✓✓

✓ the app documents it, in its own docs, source code or a developer's post (see From the apps themselves). ✓† from our own testing or users' reports. Blank: not supported, or not documented. Strava, Komoot and most other apps read the route and waypoints as plain GPX and ignore the extras; Ride with GPS may read the type in the waypoint comment (unconfirmed). Apps change - if one reads our file differently, please tell us.

Where each addition lives

The options are in Export → Export a file, with GPX selected (see Export GPX). "Always" means it is written without an option.

WhatOption (default)Where in the XMLNamespaceRead by
The track
Line colour, width and transparencyInclude the route line colour and width (on). Set them per route in Route Settings or the route manager<trk><extensions>, three ways in this order: gpxx:TrackExtension (nearest of 16 colours, or Transparent), gpx_style:line (color, opacity, width in screen pixels), xsi:gpx (color as #RRGGBB, or #AARRGGBB when transparent, and width)gpxx, gpx_style, xsiGa Lo Cr Os OM GS GV
Turn-by-turn instructionsAlways, on a route planned here with turn-by-turn on, or a track rebuilt on roads<trkpt>: <name>, <cmt> (road name), <sym> (left, right, roundabout_e3, pass_place...), <type> (via or shaping)standard elementsCr Lo
SurfaceAlways, on a rebuilt track<trkpt><extensions><xsi:gpx><route_information> (paved, unpaved), where it changesxsiCr
Estimated timesInclude estimated times on the track and waypoints (off; needs a start time)<trkpt><time> and <wpt><time>standardLo†
Where a planned route leaves the roadsAlways, on a route planned here<trkpt><src>beeline</src> or osm on the point that ends a straight-line or any-path stretch; the track's own <src> names the plannerstandard elementsCr†
Your original file's extrasAlwaysA track that arrives with turn-by-turn or extra per-point data (power, heart rate...) is written back as it came, extensions and all - except that the line colour, if included, is written in all three forms (it is the file's own colour unless you change it), and estimated times are added if you ask for them. The file's top-level <extensions> are kept when only one route is loadedthe original file's ownall
Waypoints (your stops)
Garmin symbolAlways<wpt><sym> (Restaurant, Drinking Water...)standardGa† Lo Cr GS GV
Course-point typeAlways<wpt><type> (FOOD, WATER...)standardGa†
Type for Ride with GPS, and your noteAlways<wpt><cmt> (coffee. Closes early Sunday). A stop imported from another app keeps that file's own comment, with your note added after itstandardRW†
Opening hours, website, phoneAlways<wpt><desc>. A stop imported from another app keeps that file's own description unchangedstandardall
OpenStreetMap linkAlways, for OpenStreetMap places<wpt><src> and <link>standardall
Web linksAlways<wpt><link>: the links a stop was imported with, then its OpenStreetMap page, then its web site. Links to photos stored inside an imported .gpz are kept in PitStopper but not written yetstandardall
OsmAnd iconAlways, for OpenStreetMap categories<wpt><extensions><xsi:gpx><icon> (amenity_cafe)xsiOs
Marker shapeA circle on stops that have an OsmAnd icon; starred and flagged shapes are yours to choose (square, octagon)<wpt><extensions><xsi:gpx><background>xsiOs
POI colourInclude POI category colours (off)<wpt><extensions><xsi:gpx><color>xsiOs OM Cr
Starred and flagged colourShown when you have starred or flagged stops<wpt><extensions><xsi:gpx><color>, in place of the category colour on those stops (Garmin has no waypoint colour)xsiOs OM Cr
Direction and planned time in the nameAdd direction to name (suffix), Add planned time to name (off)<wpt><name> (Cafe L20m 15:15 - the name is shortened more to make room for the time)standardall
Distance markersWhen you have added them (not in separate-file exports)<wpt> with <type>km_marker</type> or mile_markerstandardall
Compressed files
Our own POI icons, and yoursCompress it (.gpz), then Send our icons with it (PNG and SVG)<wpt><sym>PS_cafe</sym>, <xsi:gpx><anchor>, and PNG/SVG files inside the zip. Your own icons (see POIs) use the separate PSU_ namespace instead, such as PSU_cafe_3f9a1c: a slug (the category, or the file's name) plus six characters of the icon's id. Each carries the anchor you chose for it (hsbc unless set), and its PNG, and SVG when it has one, sits in the zip beside the route. Ours are centred (hscc). A stop that kept its own <extensions> on import is left as it was.xsiLo GV

Read by: Ga Garmin devices and Garmin Connect, Lo Locus Map, Cr Cruiser, Os OsmAnd, OM Organic Maps and CoMaps, GS gpx.studio, GV GPX Viewer, RW Ride with GPS. "all" means a standard element every GPX app shows. † = from our own testing or users' reports, not the app's documentation.

Namespaces

PrefixURIDeclared
(default)http://www.topografix.com/GPX/1/1Always, on <gpx>
xsihttp://www.w3.org/2001/XMLSchema-instanceAlways, on <gpx>. The <xsi:gpx> block - a convention started by Cruiser - reuses it, so it needs no declaration of its own
gpxxhttp://www.garmin.com/xmlschemas/GpxExtensions/v3On <gpx>, only when the file uses it
gpx_stylehttp://www.topografix.com/GPX/gpx_style/0/2On <gpx>, only when the file uses it

An annotated example

A shortened export with most options turned on: one distance marker, one starred café, and a track with a turn, a roundabout and a change of surface.

<gpx version="1.1" creator="PitStopper.net"
  xmlns="http://www.topografix.com/GPX/1/1"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3"
  xmlns:gpx_style="http://www.topografix.com/GPX/gpx_style/0/2"
  xsi:schemaLocation="http://www.topografix.com/GPX/1/1 https://www.topografix.com/GPX/1/1/gpx.xsd">
  <metadata>...</metadata>

  <wpt lat="51.041" lon="3.99">                     <!-- a distance marker -->
    <time>2026-10-05T08:04:00Z</time>               <!-- estimated times -->
    <name>1 km</name><desc>1 km</desc><sym>Dot</sym><type>km_marker</type>
  </wpt>

  <wpt lat="51.0455" lon="3.9902">                  <!-- a starred cafe -->
    <time>2026-10-05T08:02:00Z</time>
    <name>Cafe Centr L20m</name>                    <!-- short name + "on your left, 20 m" -->
    <cmt>coffee. Closes early Sunday</cmt>          <!-- type + your note -->
    <desc>Full name: Cafe Centraal. Cafes. Hours: Mo-Sa 08:00-18:00</desc>
    <src>OpenStreetMap</src>
    <link href="https://www.openstreetmap.org/node/11">...</link>
    <sym>Restaurant</sym>                           <!-- Garmin symbol -->
    <type>FOOD</type>                               <!-- course-point type -->
    <extensions>
      <xsi:gpx>
        <color>#FFFF00</color>                      <!-- starred colour (else the category colour) -->
        <background>square</background>             <!-- starred shape -->
        <icon>amenity_cafe</icon>                   <!-- OsmAnd icon -->
      </xsi:gpx>
    </extensions>
  </wpt>

  <trk>
    <name>My ride</name>
    <extensions>                                    <!-- line colour and width -->
      <gpxx:TrackExtension><gpxx:DisplayColor>DarkBlue</gpxx:DisplayColor></gpxx:TrackExtension>
      <gpx_style:line><gpx_style:color>1976D2</gpx_style:color><gpx_style:width>5</gpx_style:width></gpx_style:line>
      <xsi:gpx><color>#1976D2</color><width>5</width></xsi:gpx>
    </extensions>
    <trkseg>
      <trkpt lat="51.05" lon="3.99"><ele>3</ele>
        <extensions><xsi:gpx><route_information>paved</route_information></xsi:gpx></extensions>
      </trkpt>
      <trkpt lat="51.0455" lon="3.99"><ele>4</ele>
        <cmt>High Street</cmt><sym>left</sym>       <!-- turn left onto High Street -->
      </trkpt>
      <trkpt lat="51.041" lon="3.99"><ele>5</ele>
        <sym>roundabout_e3</sym>                    <!-- roundabout, third exit -->
        <extensions><xsi:gpx><route_information>unpaved</route_information></xsi:gpx></extensions>
      </trkpt>
    </trkseg>
  </trk>
</gpx>

From the apps themselves

Where the apps describe their own support:

Good to know

  • Colours come in as well as go out. When you load a GPX file, a track keeps the colour, width and transparency it was given, read from gpx_style first, then xsi:gpx, then Garmin's colour name; a KML line style is read too. On export the same look is written in all three forms, so a route coloured in one app arrives coloured in the others. Garmin can only take the nearest of its 16 colours, with no width. Locus Map's own line settings inside gpx_style:line (such as a line pattern) are kept and written back, with Locus's copy of the colour and width brought in step with yours.
  • Transparency is set per route in Route Settings or the route manager: solid, 25%, 50% or 75% transparent, or fully transparent. Fully transparent means "hidden in other apps" - it is exported as Garmin's Transparent and an opacity of 0 - while PitStopper still draws the route, dashed, so you can see it.
  • The track colour is written three ways because each app family reads a different one: Garmin's gpxx first, then gpx_style, then xsi:gpx - the order a Locus and Cruiser user reported some readers need (see the sources above).
  • Several routes in one file ("Combined", the default) give one <trk> per route, each in its own colour. "Separate files" gives a zip of single-route GPX files.
  • Icons come in as well as go out. A .gpz from another app brings the PNG for each <sym> its stops use (pictures no stop uses are left out); PitStopper offers to draw the stops with them, and writes the same symbol name and original picture back when a stop wearing one is exported in a .gpz with icons. The file's own anchor (hscc in Cruiser's reference file) is kept when its stops agree on one.
  • A stop you imported keeps its own <extensions> from the original file, in place of the icon, colour and shape PitStopper would add. From another app's file it also keeps its own <desc>, <cmt> and <link> entries.
  • Export POIs only writes no colours, but still adds the OsmAnd icon and marker shape.
  • Times are never invented: estimated times need a start time, and a track that came with recorded times keeps them whatever the option says.
  • FIT and KML carry the same information their own way: FIT as course points, KML as styles and folders. See Export FIT and Export KML.