GPS Trace playback: real-time scheduling, map follow, accuracy ring, Route Matching overhaul, and OCM truck / foreign coverage hardening.
Features — GPS Trace playback
- Playback now advances by the actual timestamp gaps between points instead of a fixed cadence. Speed selector simplified to 1× / 2× / 4× relative to real time; points without timestamps fall back to a 1-second step, and very long stationary gaps are capped so the view doesn't stall.
- New "Follow" button in the player bar locks the map centre to the current point on every update. The preference persists across sessions, and the map automatically unlocks the moment you drag it — inspecting something nearby no longer fights the next tick.
- Current-position marker redesigned for better contrast on dark / dense basemaps: a cyan core with dark outline, wrapped in a soft pulsing halo that breathes even while paused, so the live cursor reads at any zoom level.
- Horizontal-accuracy ring is now drawn around the current point, sized in metres from the point's reported accuracy value, scaling with zoom. When a point has no reported accuracy, the ring is hidden rather than estimated.
- New V.Acc (vertical accuracy) field appears next to H.Acc in the info bar. Both columns only appear when the imported trace actually carries the values — no fabricated readouts.
- "Speed" label in the info bar is now a click / Enter / Space toggle between km/h and mph. The choice persists across sessions and applies to both the info bar and the per-point tooltip.
Features — Route Matching (HERE v8)
- New server-side proxy endpoint for HERE Route Matching v8 that handles authentication and forwards waypoint traces to HERE.
- Vehicle selector now matches HERE's 11 officially supported vehicle types: bdouble, bicycle, bus, car, carHOV, emergency, motorcycle, pedestrian, roadtrain, taxi, truck.
- Changing the vehicle selector instantly rewrites the mode= parameter of the URL editor, preserving everything else the user has added.
- Default Route Matching URL trimmed to just the essential parameters. Users freely append their own linkAttributes, legAttributes, or anything else HERE supports.
- Custom URL edits are now remembered across sessions, with the vehicle mode always re-applied from the live selector so a saved URL still follows a later vehicle change.
- Submitting a URL that contains an API key or access token now shows a clear confirmation before saving, with a "submit once but don't save" option. The preference is sticky — subsequent auto-saves also respect the user's choice.
Features — OCM rendering (truck / foreign / routing coverage)
- Truck segment attributes are now split into one sub-feature per metre-span, so per-span restrictions (height / width / length / weight / axle) render at their actual geometry range rather than being collapsed onto the whole segment. Local and foreign segments follow the same unified path.
- Foreign segments render correctly on tiles that contain no ISA layers — previously the bridge aborted. Foreign-only tiles are valid OCM tiles and are now treated as such.
- When sub-feature offsets exceed the source list, the bridge surfaces a visible warning on the affected feature instead of silently falling back to fabricated data.
Fixes
- KML import: traces with both a LineString track and Placemark point markers were being stitched together, causing the trace to loop back to the start at ~50% progress. The parser now scopes geometry by type, and points read match reference tools such as Google Earth.
- Info bar columns for HDOP, satellite count, fix quality, and H.Acc never appeared even when the imported trace carried the values. Fixed the flag lookup so these columns show up as documented.
- Foreign truck segments in certain tiles triggered a runtime error on first render because of a helper visibility ordering issue. Resolved.
- Foreign truck span coordinates were aligned against the wrong geometry converter, producing spans that drifted from the underlying road. Now consistent.
- NMEA import was documented to support the $xxGST sentence (standard deviation of latitude / longitude / altitude, used to derive horizontal and vertical accuracy) but the implementation was missing. Now parsed and merged with the matching RMC / GGA point.
- GPX import now recognises the common vertical-accuracy extensions (vAcc / vacc / v_acc / vertical_accuracy), mirroring existing horizontal-accuracy support.
- Lane-connectivity information is now aggregated at the segment level instead of being emitted per-block with duplicate geometry.
- Node-based ADAS junction positions now resolve through the unified geometry path and no longer use a stale index.
- Undisplayed proto fields are now dumped via a schema-driven raw path, so any new field added upstream shows up automatically instead of being silently dropped by a stale whitelist.