Summary
Make the CVSR train marker look like a real train consist on the map — not just a lone engine. Add two Zephyr passenger cars behind the locomotive and a second engine on the rear being dragged backwards (as CVSR actually operates on the return trip).
Visual Concept
Northbound: 🚂 [Zephyr] [Zephyr] 🚂←(backwards)
Southbound: (backwards)→🚂 [Zephyr] [Zephyr] 🚂
The consist should:
- Follow the track geometry (each car snapped to the rail line, not just stacked)
- The rear engine should face the opposite direction of travel (dragged backwards)
- Zephyr cars should be visually distinct from the engines (silver/streamlined look)
Why This Would Be Cool
The CVSR is a heritage railroad — showing the full train consist on the map would be visually striking and unique. No other map app does this. It would make the live tracker feel more real and be a conversation piece when users share the map.
Implementation Notes
- Each car needs its own position, snapped to the track line at intervals behind the lead engine
- The
snapToLine() function could be extended to return positions at offset distances along the line
- Car spacing should be roughly 20-25 meters (typical railcar length)
- The rear engine icon needs a 180° rotation offset from the bearing
- Could use the existing USFT train.png for engines and a custom Zephyr car sprite
Dependencies
Summary
Make the CVSR train marker look like a real train consist on the map — not just a lone engine. Add two Zephyr passenger cars behind the locomotive and a second engine on the rear being dragged backwards (as CVSR actually operates on the return trip).
Visual Concept
The consist should:
Why This Would Be Cool
The CVSR is a heritage railroad — showing the full train consist on the map would be visually striking and unique. No other map app does this. It would make the live tracker feel more real and be a conversation piece when users share the map.
Implementation Notes
snapToLine()function could be extended to return positions at offset distances along the lineDependencies