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:
@@ -149,3 +149,84 @@ html, body { height: 100%; overflow: hidden; background: var(--bg-primary); colo
|
||||
.layer-status.active {
|
||||
display: block;
|
||||
}
|
||||
|
||||
|
||||
/* === Neue Layer-Dots === */
|
||||
.dot-satellites { background: #ff4444; }
|
||||
.dot-disasters { background: #ff8800; }
|
||||
|
||||
/* === Visual Mode Buttons === */
|
||||
.vmode-btn {
|
||||
padding: 4px 8px;
|
||||
font-family: var(--font-mono);
|
||||
font-size: 9px;
|
||||
font-weight: 700;
|
||||
letter-spacing: 1px;
|
||||
background: rgba(255,255,255,0.05);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: 3px;
|
||||
color: var(--text-dim);
|
||||
cursor: pointer;
|
||||
transition: all 0.2s;
|
||||
}
|
||||
.vmode-btn:hover { border-color: var(--accent); color: var(--text); }
|
||||
.vmode-btn.active { background: rgba(0,255,136,0.15); border-color: var(--accent); color: var(--accent); }
|
||||
|
||||
/* === Visual Overlay (CRT Scanlines) === */
|
||||
.visual-overlay {
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
z-index: 50;
|
||||
pointer-events: none;
|
||||
}
|
||||
.vmode-crt-overlay {
|
||||
background: repeating-linear-gradient(
|
||||
0deg,
|
||||
transparent,
|
||||
transparent 2px,
|
||||
rgba(0, 0, 0, 0.08) 2px,
|
||||
rgba(0, 0, 0, 0.08) 4px
|
||||
);
|
||||
box-shadow: inset 0 0 120px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
/* === Night Vision Mode === */
|
||||
.vmode-nvg {
|
||||
filter: saturate(0) brightness(1.2) contrast(1.1);
|
||||
}
|
||||
.vmode-nvg .cesium-viewer { mix-blend-mode: normal; }
|
||||
.vmode-nvg::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
background: rgba(0, 255, 0, 0.08);
|
||||
pointer-events: none;
|
||||
z-index: 40;
|
||||
mix-blend-mode: multiply;
|
||||
}
|
||||
|
||||
/* === FLIR Thermal Mode === */
|
||||
.vmode-flir {
|
||||
filter: saturate(0) invert(1) contrast(1.3) brightness(0.9);
|
||||
}
|
||||
.vmode-flir::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
background: linear-gradient(135deg, rgba(255,100,0,0.05), rgba(255,0,100,0.05));
|
||||
pointer-events: none;
|
||||
z-index: 40;
|
||||
}
|
||||
|
||||
/* === CRT Mode === */
|
||||
.vmode-crt {
|
||||
filter: contrast(1.1) brightness(0.95);
|
||||
}
|
||||
.vmode-crt::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
background: radial-gradient(ellipse at center, transparent 60%, rgba(0,0,0,0.4) 100%);
|
||||
pointer-events: none;
|
||||
z-index: 40;
|
||||
}
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren