Neue Features: Satelliten-Orbits, Naturkatastrophen, Visual Modes

SATELLITEN (CelesTrak TLE):
- Raumstationen (ISS), GPS, Galileo, Wetter, Erdbeobachtung, Starlink
- Echtzeit-Positionsberechnung aus Kepler-Elementen (2s Update)
- Orbitbahnen als leuchtende Linien (Stationen, GPS, Galileo)
- Farbkodiert nach Gruppe (rot=Station, orange=GPS, blau=Galileo)

NATURKATASTROPHEN (NASA EONET):
- Waldbraende, Vulkane, Stuerme, Fluten, Erdrutsche, Eis
- Farbige Punkte mit Emoji-Labels
- Klick zeigt Details und Quellen

VISUAL MODES:
- STD: Standard-Ansicht
- NVG: Nachtsicht (gruener Monochrom-Filter)
- FLIR: Thermal-Ansicht (invertiert, Infrarot-Look)
- CRT: Retro-Monitor (Scanlines, Vignette)

4 neue Dateien: satellites.js, disasters.js, visualmodes.js,
data_satellites.py, data_disasters.py
Dieser Commit ist enthalten in:
Claude Dev
2026-03-24 12:50:04 +01:00
Ursprung 1c462c3041
Commit 9b4ea4cd28
9 geänderte Dateien mit 493 neuen und 0 gelöschten Zeilen

Datei anzeigen

@@ -78,6 +78,22 @@
</label>
<div class="layer-loading" id="loading-gdelt"></div>
<div class="layer-status" id="status-gdelt"></div>
<label class="layer-toggle">
<input type="checkbox" id="layer-satellites">
<span class="layer-dot dot-satellites"></span>
<span class="layer-name">Satelliten</span>
<span class="layer-count" id="count-satellites">-</span>
</label>
<div class="layer-loading" id="loading-satellites"></div>
<div class="layer-status" id="status-satellites"></div>
<label class="layer-toggle">
<input type="checkbox" id="layer-disasters">
<span class="layer-dot dot-disasters"></span>
<span class="layer-name">Katastrophen</span>
<span class="layer-count" id="count-disasters">-</span>
</label>
<div class="layer-loading" id="loading-disasters"></div>
<div class="layer-status" id="status-disasters"></div>
</div>
<div class="panel-divider"></div>
<div class="panel-section">
@@ -93,6 +109,17 @@
</label>
</div>
<div class="panel-divider"></div>
<div class="panel-divider"></div>
<div class="panel-section">
<div style="font-size:9px;letter-spacing:1.5px;color:var(--accent);margin-bottom:6px;">ANSICHT</div>
<div style="display:flex;gap:4px;flex-wrap:wrap;">
<button class="vmode-btn active" data-mode="standard" onclick="VisualModes.set('standard')">STD</button>
<button class="vmode-btn" data-mode="nvg" onclick="VisualModes.set('nvg')">NVG</button>
<button class="vmode-btn" data-mode="flir" onclick="VisualModes.set('flir')">FLIR</button>
<button class="vmode-btn" data-mode="crt" onclick="VisualModes.set('crt')">CRT</button>
</div>
</div>
<div class="panel-divider"></div>
<div class="panel-coords" id="coords-display">
LAT: --&nbsp;&nbsp;LON: --
</div>
@@ -100,6 +127,7 @@
<!-- CesiumJS Container -->
<div id="cesiumContainer"></div>
<div id="visual-overlay" class="visual-overlay" style="display:none"></div>
<!-- Bottom Bar -->
<footer id="bottom-bar">
@@ -114,5 +142,8 @@
<script src="/static/js/layers/ships.js"></script>
<script src="/static/js/layers/quakes.js"></script>
<script src="/static/js/layers/gdelt.js"></script>
<script src="/static/js/layers/satellites.js"></script>
<script src="/static/js/layers/disasters.js"></script>
<script src="/static/js/layers/visualmodes.js"></script>
</body>
</html>