Files
randy 105651f005
CI / check (push) Successful in 41s
CI / deploy (push) Successful in 15s
Add activity type and a click-to-open track profile panel
Track properties gain activity_type (FIT: sport enum from the
session/sport message, Garmin's own table; GPX: <trk><type> passed
through as-is) alongside the existing distance/elevation/duration.

Clicking a track line now opens a bottom panel with a chart per
metric the track actually has (elevation always; speed/cadence/heart
rate only when present — FIT's record fields or GPX's device
extensions). TrackStats.build_profile computes cumulative distance
the same way for both formats so they're directly comparable. One
pointermove listener drives a synchronized crosshair across every
chart, a single tooltip listing all series, and a map marker at the
hovered point's position — hovering the chart shows where on the
track that moment was.
2026-09-07 13:38:49 +02:00

40 lines
1.2 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<gpx version="1.1" creator="test">
<wpt lat="48.1" lon="17.2">
<ele>200</ele>
<name>Start</name>
<desc>Trailhead, see https://example.com/trail for details</desc>
<time>2026-01-01T09:00:00Z</time>
</wpt>
<trk>
<name>Morning Loop</name>
<type>running</type>
<trkseg>
<trkpt lat="48.1" lon="17.2">
<ele>200</ele>
<time>2026-01-01T09:00:00Z</time>
<extensions>
<gpxtpx:TrackPointExtension xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1">
<gpxtpx:hr>140</gpxtpx:hr>
<gpxtpx:cad>80</gpxtpx:cad>
</gpxtpx:TrackPointExtension>
</extensions>
</trkpt>
<trkpt lat="48.101" lon="17.201">
<ele>250</ele>
<time>2026-01-01T09:10:00Z</time>
<extensions>
<gpxtpx:TrackPointExtension xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1">
<gpxtpx:hr>155</gpxtpx:hr>
<gpxtpx:cad>84</gpxtpx:cad>
</gpxtpx:TrackPointExtension>
</extensions>
</trkpt>
<trkpt lat="48.102" lon="17.202">
<ele>230</ele>
<time>2026-01-01T09:20:00Z</time>
</trkpt>
</trkseg>
</trk>
</gpx>