|
|
|
@@ -51,12 +51,49 @@
|
|
|
|
<!-- Layer Panel -->
|
|
|
|
<!-- Layer Panel -->
|
|
|
|
<aside id="layer-panel" class="layer-panel">
|
|
|
|
<aside id="layer-panel" class="layer-panel">
|
|
|
|
<h3 class="panel-title">LAYER</h3>
|
|
|
|
<h3 class="panel-title">LAYER</h3>
|
|
|
|
<div class="panel-section">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- Satellitenbilder: immer sichtbar -->
|
|
|
|
|
|
|
|
<div class="panel-section">
|
|
|
|
|
|
|
|
<div style="font-size:9px;letter-spacing:1.5px;color:var(--accent);margin-bottom:4px">SATELLITENBILDER</div>
|
|
|
|
|
|
|
|
<select id="imagery-select" class="imagery-select" onchange="ImagerySwitch.switchTo(this.value)">
|
|
|
|
|
|
|
|
<optgroup label="Standard">
|
|
|
|
|
|
|
|
<option value="default">Cesium Ion (Standard)</option>
|
|
|
|
|
|
|
|
<option value="esri">Esri World Imagery</option>
|
|
|
|
|
|
|
|
</optgroup>
|
|
|
|
|
|
|
|
<optgroup label="NASA Earthdata (tagesaktuell)">
|
|
|
|
|
|
|
|
<option value="nasa-modis">MODIS Terra (Heute)</option>
|
|
|
|
|
|
|
|
<option value="nasa-viirs">VIIRS SNPP (Heute)</option>
|
|
|
|
|
|
|
|
<option value="nasa-goes-east">GOES East (Live)</option>
|
|
|
|
|
|
|
|
<option value="nasa-goes-west">GOES West (Live)</option>
|
|
|
|
|
|
|
|
</optgroup>
|
|
|
|
|
|
|
|
<optgroup label="Sentinel-2 (historisch)">
|
|
|
|
|
|
|
|
<option value="s2-2024">Sentinel-2 (2024)</option>
|
|
|
|
|
|
|
|
<option value="s2-2023">Sentinel-2 (2023)</option>
|
|
|
|
|
|
|
|
<option value="s2-2022">Sentinel-2 (2022)</option>
|
|
|
|
|
|
|
|
<option value="s2-2020">Sentinel-2 (2020)</option>
|
|
|
|
|
|
|
|
<option value="s2-2018">Sentinel-2 (2018)</option>
|
|
|
|
|
|
|
|
</optgroup>
|
|
|
|
|
|
|
|
<optgroup label="Karten">
|
|
|
|
|
|
|
|
<option value="topo">OpenTopoMap</option>
|
|
|
|
|
|
|
|
<option value="osm">OpenStreetMap</option>
|
|
|
|
|
|
|
|
</optgroup>
|
|
|
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
<div id="imagery-label" style="font-size:9px;color:var(--text-dim);margin-top:2px;">Cesium Ion (Standard)</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="panel-divider"></div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- Gruppe: ECHTZEIT -->
|
|
|
|
|
|
|
|
<div class="layer-group open" id="group-realtime">
|
|
|
|
|
|
|
|
<div class="layer-group-header" data-group="group-realtime">
|
|
|
|
|
|
|
|
<span class="layer-group-chevron">▾</span>
|
|
|
|
|
|
|
|
<span class="layer-group-title" style="color:var(--accent)">ECHTZEIT</span>
|
|
|
|
|
|
|
|
<span class="layer-group-count" id="gcount-realtime">0/3</span>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="layer-group-content">
|
|
|
|
<label class="layer-toggle">
|
|
|
|
<label class="layer-toggle">
|
|
|
|
<input type="checkbox" id="layer-flights" title="Echtzeit-Flugverkehr weltweit (OpenSky Network, ~7.000 Flugzeuge, 15s Refresh)">
|
|
|
|
<input type="checkbox" id="layer-flights" title="Echtzeit-Flugverkehr weltweit (~7.000 Flugzeuge, 15s Refresh)">
|
|
|
|
<span class="layer-dot dot-flights"></span>
|
|
|
|
<span class="layer-dot dot-flights"></span>
|
|
|
|
<span class="layer-name" title="~7.000 Flugzeuge weltweit, Position + Hoehe + Geschwindigkeit">Flugverkehr</span>
|
|
|
|
<span class="layer-name">Flugverkehr</span>
|
|
|
|
<span class="layer-count" id="count-flights">-</span>
|
|
|
|
<span class="layer-count" id="count-flights">-</span>
|
|
|
|
</label>
|
|
|
|
</label>
|
|
|
|
<div class="layer-loading" id="loading-flights"></div>
|
|
|
|
<div class="layer-loading" id="loading-flights"></div>
|
|
|
|
@@ -64,32 +101,98 @@
|
|
|
|
<label class="layer-toggle">
|
|
|
|
<label class="layer-toggle">
|
|
|
|
<input type="checkbox" id="layer-military" title="Militaerflugzeuge weltweit (adsb.lol, ~300 Flugzeuge, 20s Refresh)">
|
|
|
|
<input type="checkbox" id="layer-military" title="Militaerflugzeuge weltweit (adsb.lol, ~300 Flugzeuge, 20s Refresh)">
|
|
|
|
<span class="layer-dot dot-military"></span>
|
|
|
|
<span class="layer-dot dot-military"></span>
|
|
|
|
<span class="layer-name" title="Militaertransporter, Tanker, Aufklaerer, Kampfjets">Militaerflug</span>
|
|
|
|
<span class="layer-name">Militaerflug</span>
|
|
|
|
<span class="layer-count" id="count-military">-</span>
|
|
|
|
<span class="layer-count" id="count-military">-</span>
|
|
|
|
</label>
|
|
|
|
</label>
|
|
|
|
<div class="layer-status" id="status-military"></div>
|
|
|
|
<div class="layer-status" id="status-military"></div>
|
|
|
|
<label class="layer-toggle">
|
|
|
|
<label class="layer-toggle">
|
|
|
|
<input type="checkbox" id="layer-ships" title="Echtzeit-Schiffsverkehr weltweit (AISStream AIS-Daten, kontinuierlich)">
|
|
|
|
<input type="checkbox" id="layer-ships" title="Echtzeit-Schiffsverkehr weltweit (AISStream AIS-Daten)">
|
|
|
|
<span class="layer-dot dot-ships"></span>
|
|
|
|
<span class="layer-dot dot-ships"></span>
|
|
|
|
<span class="layer-name" title="Tausende Schiffe global, MMSI + SOG + COG">Schiffsverkehr</span>
|
|
|
|
<span class="layer-name">Schiffsverkehr</span>
|
|
|
|
<span class="layer-count" id="count-ships">-</span>
|
|
|
|
<span class="layer-count" id="count-ships">-</span>
|
|
|
|
</label>
|
|
|
|
</label>
|
|
|
|
<div class="layer-loading" id="loading-ships"></div>
|
|
|
|
<div class="layer-loading" id="loading-ships"></div>
|
|
|
|
<div class="layer-status" id="status-ships"></div>
|
|
|
|
<div class="layer-status" id="status-ships"></div>
|
|
|
|
<div id="ship-filters" class="ship-filters" style="display:none"></div>
|
|
|
|
<div id="ship-filters" class="ship-filters" style="display:none"></div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- Gruppe: INTELLIGENCE -->
|
|
|
|
|
|
|
|
<div class="layer-group" id="group-intel">
|
|
|
|
|
|
|
|
<div class="layer-group-header" data-group="group-intel">
|
|
|
|
|
|
|
|
<span class="layer-group-chevron">▸</span>
|
|
|
|
|
|
|
|
<span class="layer-group-title" style="color:#ff8800">INTELLIGENCE</span>
|
|
|
|
|
|
|
|
<span class="layer-group-count" id="gcount-intel">0/3</span>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="layer-group-content">
|
|
|
|
<label class="layer-toggle">
|
|
|
|
<label class="layer-toggle">
|
|
|
|
<input type="checkbox" id="layer-gdelt" title="Geokodierte Nachrichten der letzten 24h (GDELT Global Event Database)">
|
|
|
|
<input type="checkbox" id="layer-gdelt" title="Geokodierte Nachrichten der letzten 24h (GDELT)">
|
|
|
|
<span class="layer-dot dot-gdelt"></span>
|
|
|
|
<span class="layer-dot dot-gdelt"></span>
|
|
|
|
<span class="layer-name" title="Geokodierte News-Events, thematisch zur aktuellen Weltlage">Nachrichten</span>
|
|
|
|
<span class="layer-name">Nachrichten</span>
|
|
|
|
<span class="layer-count" id="count-gdelt">-</span>
|
|
|
|
<span class="layer-count" id="count-gdelt">-</span>
|
|
|
|
</label>
|
|
|
|
</label>
|
|
|
|
<div class="layer-loading" id="loading-gdelt"></div>
|
|
|
|
<div class="layer-loading" id="loading-gdelt"></div>
|
|
|
|
<div class="layer-status" id="status-gdelt"></div>
|
|
|
|
<div class="layer-status" id="status-gdelt"></div>
|
|
|
|
<label class="layer-toggle">
|
|
|
|
<label class="layer-toggle">
|
|
|
|
<input type="checkbox" id="layer-satellites" title="Satelliten-Orbits in Echtzeit (CelesTrak TLE: ISS, GPS, Galileo, Starlink)">
|
|
|
|
<input type="checkbox" id="layer-disasters" title="Naturkatastrophen + Erdbeben (NASA EONET + USGS)">
|
|
|
|
|
|
|
|
<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>
|
|
|
|
|
|
|
|
<label class="layer-toggle">
|
|
|
|
|
|
|
|
<input type="checkbox" id="layer-firms" title="NASA VIIRS Waermeanomalien: Braende, Industriewaerme (375m)">
|
|
|
|
|
|
|
|
<span class="layer-dot dot-firms"></span>
|
|
|
|
|
|
|
|
<span class="layer-name">Feuer (VIIRS)</span>
|
|
|
|
|
|
|
|
</label>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- Gruppe: GEOINT -->
|
|
|
|
|
|
|
|
<div class="layer-group" id="group-geoint">
|
|
|
|
|
|
|
|
<div class="layer-group-header" data-group="group-geoint">
|
|
|
|
|
|
|
|
<span class="layer-group-chevron">▸</span>
|
|
|
|
|
|
|
|
<span class="layer-group-title" style="color:#e040fb">GEOINT</span>
|
|
|
|
|
|
|
|
<span class="layer-group-count" id="gcount-geoint">0/3</span>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="layer-group-content">
|
|
|
|
|
|
|
|
<label class="layer-toggle">
|
|
|
|
|
|
|
|
<input type="checkbox" id="layer-vlm" title="VLM-Bildanalyse: Bild hochladen, Claude analysiert, Overpass sucht">
|
|
|
|
|
|
|
|
<span class="layer-dot dot-vlm"></span>
|
|
|
|
|
|
|
|
<span class="layer-name">Bildanalyse</span>
|
|
|
|
|
|
|
|
</label>
|
|
|
|
|
|
|
|
<label class="layer-toggle">
|
|
|
|
|
|
|
|
<input type="checkbox" id="layer-nightlights" title="NASA VIIRS Nachtlicht-Karte (Black Marble NRT)">
|
|
|
|
|
|
|
|
<span class="layer-dot dot-nightlights"></span>
|
|
|
|
|
|
|
|
<span class="layer-name">Nachtlichter</span>
|
|
|
|
|
|
|
|
</label>
|
|
|
|
|
|
|
|
<label class="layer-toggle">
|
|
|
|
|
|
|
|
<input type="checkbox" id="layer-celltowers" title="Mobilfunkmasten aus OpenStreetMap (zoomabhaengig)">
|
|
|
|
|
|
|
|
<span class="layer-dot dot-celltowers"></span>
|
|
|
|
|
|
|
|
<span class="layer-name">Funkmasten</span>
|
|
|
|
|
|
|
|
<span class="layer-count" id="count-celltowers">-</span>
|
|
|
|
|
|
|
|
</label>
|
|
|
|
|
|
|
|
<div class="layer-status" id="status-celltowers"></div>
|
|
|
|
|
|
|
|
<div class="geoint-btn-row">
|
|
|
|
|
|
|
|
<button class="geoint-tool-btn" onclick="GeointTools.showSunCalc()" title="Sonnenstand und Schattenanalyse">Sonne</button>
|
|
|
|
|
|
|
|
<button class="geoint-tool-btn" onclick="GeointTools.startElevation()" title="Hoehenprofil und Sichtlinienanalyse">Hoehe</button>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- Gruppe: INFRASTRUKTUR -->
|
|
|
|
|
|
|
|
<div class="layer-group" id="group-infra">
|
|
|
|
|
|
|
|
<div class="layer-group-header" data-group="group-infra">
|
|
|
|
|
|
|
|
<span class="layer-group-chevron">▸</span>
|
|
|
|
|
|
|
|
<span class="layer-group-title" style="color:#ffdd00">INFRASTRUKTUR</span>
|
|
|
|
|
|
|
|
<span class="layer-group-count" id="gcount-infra">0/4</span>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="layer-group-content">
|
|
|
|
|
|
|
|
<label class="layer-toggle">
|
|
|
|
|
|
|
|
<input type="checkbox" id="layer-satellites" title="Satelliten-Orbits (CelesTrak TLE: ISS, GPS, Galileo, Starlink)">
|
|
|
|
<span class="layer-dot dot-satellites"></span>
|
|
|
|
<span class="layer-dot dot-satellites"></span>
|
|
|
|
<span class="layer-name" title="ISS (rot), GPS (orange), Galileo (blau), Starlink (grau)">Satelliten</span>
|
|
|
|
<span class="layer-name">Satelliten</span>
|
|
|
|
<span class="layer-count" id="count-satellites">-</span>
|
|
|
|
<span class="layer-count" id="count-satellites">-</span>
|
|
|
|
</label>
|
|
|
|
</label>
|
|
|
|
<div class="layer-loading" id="loading-satellites"></div>
|
|
|
|
<div class="layer-loading" id="loading-satellites"></div>
|
|
|
|
@@ -97,125 +200,86 @@
|
|
|
|
<label class="layer-toggle">
|
|
|
|
<label class="layer-toggle">
|
|
|
|
<input type="checkbox" id="layer-cables" title="Untersee-Glasfaserkabel weltweit (TeleGeography)">
|
|
|
|
<input type="checkbox" id="layer-cables" title="Untersee-Glasfaserkabel weltweit (TeleGeography)">
|
|
|
|
<span class="layer-dot dot-cables"></span>
|
|
|
|
<span class="layer-dot dot-cables"></span>
|
|
|
|
<span class="layer-name" title="Internationale Seekabel-Infrastruktur">Seekabel</span>
|
|
|
|
<span class="layer-name">Seekabel</span>
|
|
|
|
<span class="layer-count" id="count-cables">-</span>
|
|
|
|
<span class="layer-count" id="count-cables">-</span>
|
|
|
|
</label>
|
|
|
|
</label>
|
|
|
|
<div class="layer-status" id="status-cables"></div>
|
|
|
|
<div class="layer-status" id="status-cables"></div>
|
|
|
|
<label class="layer-toggle">
|
|
|
|
<label class="layer-toggle">
|
|
|
|
<input type="checkbox" id="layer-infra" title="Kernkraftwerke + Militaerflughaefen (OpenStreetMap)">
|
|
|
|
<input type="checkbox" id="layer-infra" title="Kernkraftwerke + Militaerflughaefen (OpenStreetMap)">
|
|
|
|
<span class="layer-dot dot-infra"></span>
|
|
|
|
<span class="layer-dot dot-infra"></span>
|
|
|
|
<span class="layer-name" title="Atomkraftwerke (gelb) + Militaerbasen (rot)">Infrastruktur</span>
|
|
|
|
<span class="layer-name">AKWs / Basen</span>
|
|
|
|
<span class="layer-count" id="count-infra">-</span>
|
|
|
|
<span class="layer-count" id="count-infra">-</span>
|
|
|
|
</label>
|
|
|
|
</label>
|
|
|
|
<div class="layer-status" id="status-infra"></div>
|
|
|
|
<div class="layer-status" id="status-infra"></div>
|
|
|
|
<label class="layer-toggle">
|
|
|
|
|
|
|
|
<input type="checkbox" id="layer-vlm" title="VLM-Bildanalyse: Bild hochladen, Claude analysiert, Overpass sucht passende Orte">
|
|
|
|
|
|
|
|
<span class="layer-dot dot-vlm"></span>
|
|
|
|
|
|
|
|
<span class="layer-name" title="Satellitenbild-Analyse mit Claude VLM">Bildanalyse</span>
|
|
|
|
|
|
|
|
<span class="layer-count" id="count-vlm">-</span>
|
|
|
|
|
|
|
|
</label>
|
|
|
|
|
|
|
|
<div class="panel-divider"></div>
|
|
|
|
|
|
|
|
<div style="font-size:9px;letter-spacing:1.5px;color:#e040fb;margin-bottom:4px">GEOINT TOOLS</div>
|
|
|
|
|
|
|
|
<label class="layer-toggle">
|
|
|
|
|
|
|
|
<input type="checkbox" id="layer-nightlights" title="NASA VIIRS Nachtlicht-Karte (Black Marble)">
|
|
|
|
|
|
|
|
<span class="layer-dot dot-nightlights"></span>
|
|
|
|
|
|
|
|
<span class="layer-name" title="Globale Nachtlicht-Aktivitaet (Besiedlung, Stromausfaelle)">Nachtlichter</span>
|
|
|
|
|
|
|
|
</label>
|
|
|
|
|
|
|
|
<label class="layer-toggle">
|
|
|
|
|
|
|
|
<input type="checkbox" id="layer-celltowers" title="Mobilfunkmasten aus OpenStreetMap (zoomabhaengig)">
|
|
|
|
|
|
|
|
<span class="layer-dot dot-celltowers"></span>
|
|
|
|
|
|
|
|
<span class="layer-name" title="Sendemasten und Mobilfunkinfrastruktur">Funkmasten</span>
|
|
|
|
|
|
|
|
<span class="layer-count" id="count-celltowers">-</span>
|
|
|
|
|
|
|
|
</label>
|
|
|
|
|
|
|
|
<div class="layer-status" id="status-celltowers"></div>
|
|
|
|
|
|
|
|
<div class="geoint-btn-row">
|
|
|
|
|
|
|
|
<button class="geoint-tool-btn" onclick="GeointTools.showSunCalc()" title="Sonnenstand und Schattenanalyse berechnen">Sonne</button>
|
|
|
|
|
|
|
|
<button class="geoint-tool-btn" onclick="GeointTools.startElevation()" title="Hoehenprofil und Sichtlinienanalyse zwischen zwei Punkten">Hoehe</button>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="panel-divider"></div>
|
|
|
|
|
|
|
|
<label class="layer-toggle">
|
|
|
|
<label class="layer-toggle">
|
|
|
|
<input type="checkbox" id="layer-iss" title="ISS Echtzeit-Position (5s Refresh)">
|
|
|
|
<input type="checkbox" id="layer-iss" title="ISS Echtzeit-Position (5s Refresh)">
|
|
|
|
<span class="layer-dot dot-iss"></span>
|
|
|
|
<span class="layer-dot dot-iss"></span>
|
|
|
|
<span class="layer-name" title="International Space Station, ~420km Hoehe">ISS Tracker</span>
|
|
|
|
<span class="layer-name">ISS Tracker</span>
|
|
|
|
</label>
|
|
|
|
</label>
|
|
|
|
<label class="layer-toggle">
|
|
|
|
</div>
|
|
|
|
<input type="checkbox" id="layer-disasters" title="Naturkatastrophen + Erdbeben (NASA EONET + USGS: Waldbraende, Vulkane, Stuerme, Erdbeben M2.5+)">
|
|
|
|
</div>
|
|
|
|
<span class="layer-dot dot-disasters"></span>
|
|
|
|
|
|
|
|
<span class="layer-name" title="Waldbraende, Vulkane, Stuerme, Erdbeben, Fluten, Erdrutsche">Katastrophen</span>
|
|
|
|
<!-- Gruppe: UMGEBUNG -->
|
|
|
|
<span class="layer-count" id="count-disasters">-</span>
|
|
|
|
<div class="layer-group" id="group-environ">
|
|
|
|
</label>
|
|
|
|
<div class="layer-group-header" data-group="group-environ">
|
|
|
|
<div class="layer-loading" id="loading-disasters"></div>
|
|
|
|
<span class="layer-group-chevron">▸</span>
|
|
|
|
<div class="layer-status" id="status-disasters"></div>
|
|
|
|
<span class="layer-group-title" style="color:#44bbff">UMGEBUNG</span>
|
|
|
|
<label class="layer-toggle"> <input type="checkbox" id="layer-firms" title="NASA VIIRS Waermeanomalien: Aktive Braende, Industriewaerme, Vulkane (tagesaktuell, 375m)"> <span class="layer-dot dot-firms"></span> <span class="layer-name" title="Thermische Hotspots weltweit via NASA VIIRS Satellit">Feuer (VIIRS)</span> </label>
|
|
|
|
<span class="layer-group-count" id="gcount-environ">0/4</span>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="layer-group-content">
|
|
|
|
<label class="layer-toggle">
|
|
|
|
<label class="layer-toggle">
|
|
|
|
<input type="checkbox" id="layer-weather" title="Regenradar weltweit (RainViewer, 5min Refresh)">
|
|
|
|
<input type="checkbox" id="layer-weather" title="Regenradar weltweit (RainViewer, 5min Refresh)">
|
|
|
|
<span class="layer-dot dot-weather"></span>
|
|
|
|
<span class="layer-dot dot-weather"></span>
|
|
|
|
<span class="layer-name" title="Niederschlagsradar als Overlay auf dem Globus">Regenradar</span>
|
|
|
|
<span class="layer-name">Regenradar</span>
|
|
|
|
</label>
|
|
|
|
</label>
|
|
|
|
<div class="layer-status" id="status-weather"></div>
|
|
|
|
<div class="layer-status" id="status-weather"></div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="panel-divider"></div>
|
|
|
|
|
|
|
|
<div class="panel-section">
|
|
|
|
|
|
|
|
<label class="layer-toggle">
|
|
|
|
<label class="layer-toggle">
|
|
|
|
<input type="checkbox" id="layer-daynight" title="Tag/Nacht-Beleuchtung basierend auf aktueller Sonnenposition">
|
|
|
|
<input type="checkbox" id="layer-daynight" title="Tag/Nacht-Beleuchtung basierend auf Sonnenposition">
|
|
|
|
<span class="layer-dot dot-daynight"></span>
|
|
|
|
<span class="layer-dot dot-daynight"></span>
|
|
|
|
<span class="layer-name" title="Sonnenlicht-Simulation zeigt aktuelle Tages-/Nachtseite">Tag/Nacht</span>
|
|
|
|
<span class="layer-name">Tag/Nacht</span>
|
|
|
|
</label>
|
|
|
|
</label>
|
|
|
|
<label class="layer-toggle">
|
|
|
|
<label class="layer-toggle">
|
|
|
|
<input type="checkbox" id="layer-terminator" title="Echtzeit Tag/Nacht-Grenze als orange Linie + Nachtschatten">
|
|
|
|
<input type="checkbox" id="layer-terminator" title="Echtzeit Tag/Nacht-Grenze + Nachtschatten">
|
|
|
|
<span class="layer-dot dot-terminator"></span>
|
|
|
|
<span class="layer-dot dot-terminator"></span>
|
|
|
|
<span class="layer-name" title="Sonnenterminatur: Grenze zwischen Tag und Nacht">Terminatur</span>
|
|
|
|
<span class="layer-name">Terminatur</span>
|
|
|
|
</label>
|
|
|
|
</label>
|
|
|
|
<label class="layer-toggle">
|
|
|
|
<label class="layer-toggle">
|
|
|
|
<input type="checkbox" id="layer-timezones" title="24 Zeitzonen-Linien mit aktueller Uhrzeit">
|
|
|
|
<input type="checkbox" id="layer-timezones" title="24 Zeitzonen-Linien mit aktueller Uhrzeit">
|
|
|
|
<span class="layer-dot dot-timezones"></span>
|
|
|
|
<span class="layer-dot dot-timezones"></span>
|
|
|
|
<span class="layer-name" title="UTC-Zonen als vertikale Linien mit Uhrzeiten">Zeitzonen</span>
|
|
|
|
<span class="layer-name">Zeitzonen</span>
|
|
|
|
</label>
|
|
|
|
</label>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="panel-divider"></div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- Immer sichtbar -->
|
|
|
|
|
|
|
|
<div class="panel-section">
|
|
|
|
<label class="layer-toggle">
|
|
|
|
<label class="layer-toggle">
|
|
|
|
<input type="checkbox" id="layer-crosshairs" title="Fadenkreuz und Entfernungsringe">
|
|
|
|
<input type="checkbox" id="layer-crosshairs" title="Fadenkreuz und Entfernungsringe">
|
|
|
|
<span class="layer-dot dot-crosshairs"></span>
|
|
|
|
<span class="layer-dot dot-crosshairs"></span>
|
|
|
|
<span class="layer-name">Fadenkreuz</span>
|
|
|
|
<span class="layer-name">Fadenkreuz</span>
|
|
|
|
</label>
|
|
|
|
</label>
|
|
|
|
<label class="layer-toggle">
|
|
|
|
<label class="layer-toggle">
|
|
|
|
<input type="checkbox" id="layer-labels" title="Laendergrenzen, Staedte und Gewaessernamen (Esri World Boundaries)" checked>
|
|
|
|
<input type="checkbox" id="layer-labels" title="Laendergrenzen, Staedte und Gewaessernamen (Esri)" checked>
|
|
|
|
<span class="layer-dot dot-labels"></span>
|
|
|
|
<span class="layer-dot dot-labels"></span>
|
|
|
|
<span class="layer-name" title="Laendergrenzen, Hauptstaedte, Fluesse, Meere">Ortsnamen</span>
|
|
|
|
<span class="layer-name">Ortsnamen</span>
|
|
|
|
</label>
|
|
|
|
</label>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="panel-divider"></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" title="Standard: Photorealistische Darstellung" onclick="VisualModes.set('standard')">STD</button>
|
|
|
|
|
|
|
|
<button class="vmode-btn" data-mode="nvg" title="Night Vision: Gruener Monochrom-Filter (Nachtsichtgeraet)" onclick="VisualModes.set('nvg')">NVG</button>
|
|
|
|
|
|
|
|
<button class="vmode-btn" data-mode="flir" title="FLIR Thermal: Infrarot-Darstellung fuer Waermesignaturen" onclick="VisualModes.set('flir')">FLIR</button>
|
|
|
|
|
|
|
|
<button class="vmode-btn" data-mode="crt" title="CRT Monitor: Retro-Ueberwachungsbildschirm mit Scanlines" onclick="VisualModes.set('crt')">CRT</button>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</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;">SATELLITENBILDER</div>
|
|
|
|
|
|
|
|
<select id="imagery-select" class="imagery-select" onchange="ImagerySwitch.switchTo(this.value)"> <optgroup label="Standard"> <option value="default">Cesium Ion (Standard)</option> <option value="esri">Esri World Imagery</option> </optgroup> <optgroup label="NASA Earthdata (tagesaktuell)"> <option value="nasa-modis">MODIS Terra (Heute)</option> <option value="nasa-viirs">VIIRS SNPP (Heute)</option> <option value="nasa-goes-east">GOES East (Live)</option> <option value="nasa-goes-west">GOES West (Live)</option> </optgroup> <optgroup label="Sentinel-2 (historisch)"> <option value="s2-2024">Sentinel-2 (2024)</option> <option value="s2-2023">Sentinel-2 (2023)</option> <option value="s2-2022">Sentinel-2 (2022)</option> <option value="s2-2020">Sentinel-2 (2020)</option> <option value="s2-2018">Sentinel-2 (2018)</option> </optgroup> <optgroup label="Karten"> <option value="topo">OpenTopoMap</option> <option value="osm">OpenStreetMap</option> </optgroup> </select>
|
|
|
|
|
|
|
|
<div id="imagery-label" style="font-size:9px;color:var(--text-dim);margin-top:2px;">Cesium Ion (Standard)</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="panel-divider"></div>
|
|
|
|
|
|
|
|
<div class="panel-coords" id="coords-display">
|
|
|
|
<div class="panel-coords" id="coords-display">
|
|
|
|
LAT: -- LON: --
|
|
|
|
LAT: -- LON: --
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</aside>
|
|
|
|
</aside>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- City Quick-Links -->
|
|
|
|
<!-- City Quick-Links -->
|
|
|
|
<div id="city-links" class="city-links"></div>
|
|
|
|
<div id="city-links" class="city-links"></div>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- Rechte Sidebar: Datenpunkt-Uebersicht -->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- VLM Bildanalyse Panel -->
|
|
|
|
<!-- VLM Bildanalyse Panel -->
|
|
|
|
<div id="vlm-panel" class="vlm-panel-right" style="display:none"></div>
|
|
|
|
<div id="vlm-panel" class="vlm-panel-right" style="display:none"></div>
|
|
|
|
<!-- GEOINT Tools Panel -->
|
|
|
|
<!-- GEOINT Tools Panel -->
|
|
|
|
<div id="geoint-panel" class="geoint-panel" style="display:none"></div>
|
|
|
|
<div id="geoint-panel" class="geoint-panel" style="display:none"></div>
|
|
|
|
|
|
|
|
<!-- Rechte Sidebar -->
|
|
|
|
<aside id="sidebar-right" class="sidebar-right">
|
|
|
|
<aside id="sidebar-right" class="sidebar-right">
|
|
|
|
<button id="sidebar-toggle" class="sidebar-toggle" title="Seitenleiste ein-/ausblenden">
|
|
|
|
<button id="sidebar-toggle" class="sidebar-toggle" title="Seitenleiste ein-/ausblenden">
|
|
|
|
<svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2"><polyline points="9 18 15 12 9 6"/></svg>
|
|
|
|
<svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2"><polyline points="9 18 15 12 9 6"/></svg>
|
|
|
|
@@ -241,11 +305,15 @@
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div id="visual-overlay" class="visual-overlay" style="display:none"></div>
|
|
|
|
<div id="visual-overlay" class="visual-overlay" style="display:none"></div>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- Bottom Bar -->
|
|
|
|
<!-- Bottom Bar mit Visual Modes -->
|
|
|
|
<footer id="bottom-bar">
|
|
|
|
<footer id="bottom-bar">
|
|
|
|
<div class="bottom-stats" id="bottom-stats">
|
|
|
|
<div class="bottom-vmodes">
|
|
|
|
Initialisiere...
|
|
|
|
<button class="vmode-btn-sm active" data-mode="standard" title="Standard" onclick="VisualModes.set('standard')">STD</button>
|
|
|
|
|
|
|
|
<button class="vmode-btn-sm" data-mode="nvg" title="Night Vision" onclick="VisualModes.set('nvg')">NVG</button>
|
|
|
|
|
|
|
|
<button class="vmode-btn-sm" data-mode="flir" title="FLIR Thermal" onclick="VisualModes.set('flir')">FLIR</button>
|
|
|
|
|
|
|
|
<button class="vmode-btn-sm" data-mode="crt" title="CRT Monitor" onclick="VisualModes.set('crt')">CRT</button>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="bottom-stats" id="bottom-stats">Initialisiere...</div>
|
|
|
|
</footer>
|
|
|
|
</footer>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- Scripts -->
|
|
|
|
<!-- Scripts -->
|
|
|
|
@@ -261,7 +329,7 @@
|
|
|
|
<script src="/static/js/layers/military.js"></script>
|
|
|
|
<script src="/static/js/layers/military.js"></script>
|
|
|
|
<script src="/static/js/layers/cables.js"></script>
|
|
|
|
<script src="/static/js/layers/cables.js"></script>
|
|
|
|
<script src="/static/js/layers/infra.js"></script>
|
|
|
|
<script src="/static/js/layers/infra.js"></script>
|
|
|
|
<script src="/static/js/layers/overpass.js"></script>
|
|
|
|
<script src="/static/js/layers/overpass.js"></script>
|
|
|
|
<script src="/static/js/ui/vlm.js"></script>
|
|
|
|
<script src="/static/js/ui/vlm.js"></script>
|
|
|
|
<script src="/static/js/layers/nightlights.js"></script>
|
|
|
|
<script src="/static/js/layers/nightlights.js"></script>
|
|
|
|
<script src="/static/js/layers/celltowers.js"></script>
|
|
|
|
<script src="/static/js/layers/celltowers.js"></script>
|
|
|
|
|