This commit implements a comprehensive timeline feature for the map interface,
allowing users to visualize and navigate through location history interactively.
**New Features:**
- Interactive timeline slider at the bottom of the map
- Real-time graph visualization showing:
- Speed over time (km/h)
- Battery level (%)
- Elevation/altitude (meters)
- Play/pause animation controls for automatic timeline progression
- Smooth synchronization between timeline and map layers
- Graph type selector to switch between different metrics
**Technical Implementation:**
- New Stimulus controller (maps--timeline) for timeline UI and interactions
- Canvas-based graph rendering for performance
- Event-driven architecture for map-timeline communication
- Real-time filtering of points and routes based on timeline position
- Integration with existing MapLibre GL layers
**User Benefits:**
- Clear visualization of movement progression over time
- Easy identification of journey start, end, and direction
- Ability to "replay" trips with animation
- Additional context through speed, battery, and elevation data
- Toggleable visibility to preserve screen space when not needed
**Files Added:**
- app/javascript/controllers/maps/timeline_controller.js
- app/views/map/maplibre/_timeline.html.erb
**Files Modified:**
- app/javascript/controllers/maps/maplibre_controller.js
- app/javascript/controllers/maps/maplibre/map_data_manager.js
- app/views/map/maplibre/index.html.erb