Changelog

Version 2.8 - Interactive Map Integration

  • Feature: Integrated the interactive map directly into the "Course Profile" tab. The map and its "Show/Hide" control are now located just above the profile chart for a more cohesive user experience.
  • Feature: Implemented selection synchronization between the chart and the map. When a section is clicked on the profile chart, the corresponding track segment is now highlighted on the map with a distinct and persistent color.
  • Fix: The map now automatically resets and reloads with the new track data whenever the "Analyze" button is pressed. This ensures the map always displays the data for the most recently analyzed GPX file, preventing stale data from being shown.

Version 2.7 - GAP-Adjusted Distance

  • Feature: Added Grade Adjusted Pace (GAP) distance calculations based on the Minetti polynomial.
  • UI: Added "Total GAP Distance" to the main summary panel.
  • UI: Added detailed GAP distance metrics to the "Position Statistics" panel when a section is clicked:
    • GAP Distance from Start (km)
    • Remaining GAP Distance (km)
    • GAP % Completed

Version 2.6 - Rate of Ascent/Descent

  • Feature: Added Rate of Ascent/Descent (in m/h) to the "Ultra Pacing Strategy" panel, which appears when a section is clicked.
  • Technical: The rate is calculated dynamically based on the section's elevation change and the estimated time to complete it from the pacing model. It only displays for sections with a gradient steeper than ±2%.

Version 2.5 - Position Statistics & Version Management

  • Feature: Added comprehensive position statistics to the section details panel when clicking on any section in the course profile:
    • Total Distance from Start (km) - cumulative distance from start to end of selected section
    • Remaining Distance (km) - distance remaining after selected section
    • Total Gain from Start (m) - cumulative elevation gain from start through selected section
    • Total Loss from Start (m) - cumulative elevation loss from start through selected section
    • Remaining Gain (m) - elevation gain remaining after selected section
    • Remaining Loss (m) - elevation loss remaining after selected section
  • Technical: Implemented dynamic calculation of cumulative and remaining statistics based on section selection
  • Technical: Centralized version management - version number now defined in JavaScript constant and dynamically injected into UI

Version 2.3 - UI Enhancements & Versioning

  • UI: Added instructional text to the Interactive Course Profile to improve discoverability of scroll and click features.
  • General: Added a version number (v2.3) to the bottom of the UI to help with support and deployment verification.

Version 2.2 - Advanced Chart Interactivity

  • Feature: Implemented a hover effect on the course profile chart. A light gray vertical bar now follows the mouse to indicate the section currently under the cursor.
  • Feature: Added a selection effect to the chart. A darker gray vertical bar now persistently marks the last clicked section, providing clear visual feedback.
  • Technical: Implemented a throttled mousemove event listener to ensure smooth hover performance without overwhelming the browser.
  • Technical: Reworked the chart drawing logic to layer the selection and hover effects correctly with the profile data.

Version 2.1 - Interactive Course Profile

  • Feature: Added a new "Course Profile" tab as the primary results view.
  • Feature: Implemented a color-coded, interactive elevation profile chart that visualizes the entire route.
  • Feature: The profile chart is horizontally scrollable, with its width dynamically calculated to ensure even the shortest sections are visible and clickable (min 10px width).
  • Feature: Clicking any part of the profile chart displays detailed statistics for that specific section in a dedicated panel.
  • Technical: Refactored the GPX data processing pipeline to calculate and store cumulative distance and trackpoint indices, enabling the link between the visual chart and the underlying data.

Version 2.0 - Enhanced Section Analysis & Visual Improvements

Added Features

  • Very Steep Gradient Categories: Added "Very Steep Uphill" (>20%) and "Very Steep Downhill" (<-20%) classifications with distinct dark red and dark purple color coding
  • Visual Gradient Legend: Interactive color bar legend showing all 9 gradient types from very steep downhill to very steep uphill with percentage labels
  • Comprehensive Section Statistics: Added 9 new statistics in the sections tab:
    • Count of uphill/flat/downhill sections
    • Total distance for each terrain type (km)
    • Longest continuous section of each terrain type (km)
  • Tabbed Interface: Reorganized analysis results into three focused tabs:
    • Gradient Distribution (charts and summary tables)
    • Climb/Descent Sections (with legend and statistics)
    • Detailed Segments (granular analysis)

UI/UX Improvements

  • Distance-First Layout: Moved "Distance from Start" to first column in sections table for better GPS watch correlation
  • Removed Section Numbering: Eliminated section numbers for cleaner, more practical layout focused on distance-based navigation
  • Enhanced Color Palette: Expanded from 7 to 9 distinct gradient colors for better visual differentiation
  • Improved Statistics Display: Added grid layout for section statistics with clear labels and formatting

Technical Enhancements

  • Advanced Section Grouping: Enhanced algorithm to group consecutive segments into 9 distinct terrain types
  • Statistical Calculations: Added functions to calculate longest continuous sections and terrain type distributions
  • Performance Optimization: Maintained responsive performance while adding comprehensive analysis features

Benefits for Trail Runners

  • GPS Integration: First column now matches GPS watch distance readings for easy real-time reference
  • Strategic Planning: Detailed statistics enable better pacing and effort distribution strategies
  • Visual Clarity: Color-coded legend provides instant terrain type recognition
  • Practical Navigation: Distance-based layout eliminates need for segment counting during activities