mirror of
https://github.com/smittix/intercept.git
synced 2026-07-06 00:28:12 -07:00
feat: Weather satellite and ADS-B trail rendering improvements
Weather Satellite: - Fix duplicate event listeners on mode re-entry via locationListenersAttached guard - Add suspend() to stop countdown/SSE stream when switching away from the mode - Call WeatherSat.suspend() in switchMode() when leaving weathersat - Fix toggleScheduler() to take the checkbox element as source of truth, preventing both checkboxes fighting each other - Reset isRunning/UI state after auto-capture completes (scheduler path) - Always re-select first pass and reset selectedPassIndex after loadPasses() - Keep timeline cursor in sync inside selectPass() - Add seconds to pass ID format to avoid collisions on concurrent passes - Improve predict_passes() comment clarity; fix trajectory comment ADS-B dashboard: - Batch altitude-colour trail segments into runs of same-colour polylines, reducing Leaflet layer count from O(trail length) to O(colour changes) for significantly better rendering performance with many aircraft Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -105,7 +105,7 @@ def predict_passes(
|
||||
).total_seconds()
|
||||
duration_minutes = round(duration_seconds / 60, 1)
|
||||
|
||||
# Calculate max elevation and trajectory
|
||||
# Calculate max elevation (always) and trajectory points (only if requested)
|
||||
max_el = 0.0
|
||||
max_el_az = 0.0
|
||||
trajectory: list[dict[str, float]] = []
|
||||
@@ -141,14 +141,14 @@ def predict_passes(
|
||||
_, set_az, _ = set_topo.altaz()
|
||||
|
||||
pass_data: dict[str, Any] = {
|
||||
'id': f"{sat_key}_{rise_time.utc_datetime().strftime('%Y%m%d%H%M')}",
|
||||
'id': f"{sat_key}_{rise_time.utc_datetime().strftime('%Y%m%d%H%M%S')}",
|
||||
'satellite': sat_key,
|
||||
'name': sat_info['name'],
|
||||
'frequency': sat_info['frequency'],
|
||||
'mode': sat_info['mode'],
|
||||
'startTime': rise_time.utc_datetime().strftime('%Y-%m-%d %H:%M UTC'),
|
||||
'startTimeISO': rise_time.utc_datetime().isoformat(),
|
||||
'endTimeISO': set_time.utc_datetime().isoformat(),
|
||||
'startTimeISO': rise_time.utc_datetime().isoformat() + 'Z',
|
||||
'endTimeISO': set_time.utc_datetime().isoformat() + 'Z',
|
||||
'maxEl': round(max_el, 1),
|
||||
'maxElAz': round(max_el_az, 1),
|
||||
'riseAz': round(rise_az.degrees, 1),
|
||||
|
||||
Reference in New Issue
Block a user