- Weltweite 3D-Gebaeude mit Hoehen aus OpenStreetMap
- Farbcodiert: Militaer (rot), Industrie (orange), Regierung (blau), Rest (grau)
- Toggle in Gruppe INFRASTRUKTUR
- Kostenlos via Cesium Ion OSM Buildings Tileset
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
wmts.cgi mit times/clock funktionierte nicht -- Tiles wurden nicht geladen.
Jetzt gleicher Ansatz wie nightlights.js: Datum direkt in REST-URL eingebaut.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 5 einklappbare Gruppen: ECHTZEIT, INTELLIGENCE, GEOINT, INFRASTRUKTUR, UMGEBUNG
- Jede Gruppe zeigt Aktiv-Zaehler (z.B. 2/3)
- Klick auf Header klappt Gruppe auf/zu (Chevron-Indikator)
- ANSICHT (STD/NVG/FLIR/CRT) in Bottom Bar verschoben
- SATELLITENBILDER-Dropdown an Panel-Oberkante (immer sichtbar)
- Fadenkreuz + Ortsnamen immer sichtbar (nicht in Gruppe)
- Reduziert sichtbare Zeilen von ~35 auf ~18
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Halbtransparentes Rechteck zeigt die Suchregion
- Eckpunkt-Marker + SUCHBEREICH-Label in der Mitte
- EXIF-GPS: Hervorgehobener Marker mit Punkt + Ring + Detailbox
- Kleine BBox (EXIF): staerkere Fuellung, nah sichtbar
- Grosse BBox (Region): schwache Fuellung, weit sichtbar + Kamera fliegt hin
- Backend: generate-queries gibt effective_bbox zurueck
- Reset raeumt alle Visualisierungen auf
- EXIF-GPS: Marker direkt auf Globus + Kamera fliegt hin
- EXIF-GPS als BBox (0.5 Grad Radius) fuer praezisere Overpass-Suche
- Region aus VLM/Landscape Clues als Fallback-BBox
- Statusanzeige zeigt alle genutzten Datenquellen
- Overpass-Ergebnisse werden mit EXIF-Marker kombiniert
Wenn keine Viewport-BBox gesetzt ist, nutzt der Query-Generator die
VLM-Regionsschaetzung (z.B. Europa, Naher Osten) als grobe BBox.
70+ Regionen gemappt (DE/EN). Generische OSM-Tags (building, highway,
landuse) werden gefiltert um Overpass-Timeouts zu vermeiden.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Overpass-Toggle aus Layer-Panel entfernt (kein Standalone-Modus)
- Overpass-Panel und UI-Script entfernt
- VLM-Panel nach rechts verschoben, ersetzt Sidebar wenn aktiv
- Sidebar wird automatisch ein-/ausgeblendet bei VLM Toggle
- VLM ruft Overpass API direkt auf (kein Umweg ueber OverpassUI)
- Ergebnis-Zaehler im VLM-Panel statt separatem Overpass-Panel
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Wenn man nicht weiss wo ein Bild aufgenommen wurde, macht eine
Viewport-Einschraenkung keinen Sinn. BBox ist jetzt optional per
Checkbox "Nur im sichtbaren Bereich suchen".
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
SCHIFFSTYP-FILTER:
- 6 Kategorien: Tanker (rot), Cargo (orange), Passagier (gruen),
Fischerei (blau), Militaer (magenta), Sonstige (grau)
- Einzeln ein-/ausblendbar via Checkboxen im Panel
- Farbkodierte Punkte nach Schiffstyp
KURSLINIEN-PROJEKTION:
- Zuschaltbar per Checkbox
- Zeigt 30min-Vorausprojektion basierend auf COG + SOG
- Farblich passend zum Schiffstyp, halbtransparent
DARK SHIPS ERKENNUNG:
- Backend erkennt Schiffe die >10min kein AIS-Update senden
- Positionshistorie (letzte 10 Positionen) gespeichert
- API-Endpoint: GET /api/ships/dark
- Verdaechtig wenn vorher aktiv (SOG>0.5) und jetzt still
Backend: ship_type aus AISStream MetaData gespeichert,
AIS-Typcode zu Kategorie klassifiziert (IMO Standard).
SONNENTERMINATUR:
- Echtzeit Tag/Nacht-Grenze als orange Linie auf dem Globus
- Nachtseite als halbtransparenter schwarzer Schatten
- Basiert auf Sonnendeklination + UTC-Zeit
- Aktualisiert jede Minute
ZEITZONEN:
- 24 vertikale Linien (alle 15 Grad Laengengrad)
- Jede Zone zeigt aktuelle Uhrzeit (z.B. UTC+2 14:30)
- Labels bei Zoom (<8000km) sichtbar
- Aktualisiert jede Minute
Alle Features der ersten Tabelle nun implementiert.
REGENRADAR (RainViewer):
- Weltweit Niederschlagsradar als Overlay, kostenlos, kein API-Key
- 5min Refresh, 60% Transparenz
ORTSSUCHE (Nominatim/OpenStreetMap):
- Suchfeld im Header, Ergebnisse als Dropdown
- Klick fliegt zur Position
- Deutsche Ergebnisse
CITY QUICK-LINKS:
- 12 strategische Staedte als Schnellnavigation unter dem Header
- Berlin, Washington, Moskau, Peking, Tokio, London, Paris,
Teheran, Kiew, Jerusalem, Taipei, Hormuz
FADENKREUZ + RANGE RINGS:
- Zuschaltbar im Panel
- Horizontale/vertikale Linie + 3 konzentrische Ringe
- Gruener taktischer Stil
Alle Entities haben jetzt name-Property:
- Erdbeben: "Erdbeben M5.2 bei Tokio"
- Waldbraende: "Waldbrand: Moreau River Wildfire"
- Stuerme: "Sturm: Tropical Cyclone 28P"
Sidebar zeigt sie als einzelne aufklappbare Eintraege.
Kein separater OSINT Monitor Layer mehr im Panel.
Bei Lage-Auswahl im Header passiert automatisch:
1. Monitor-Standorte werden auf dem Globus angezeigt (rote Punkte)
2. Katastrophen-Klick zeigt passende Monitor-Artikel zum Ort
3. Keine Lage = keine Monitor-Daten
Flow: Lage waehlen -> Monitor-Daten laden -> Katastrophen
zeigen ortsspezifische Artikel beim Klick.
Monitor-Feed liefert jetzt pro Standort die vollstaendigen Artikel:
Headline, Quelle, URL, Inhalts-Auszug, Datum.
Keine globale Summary mehr, keine Proximity-Heuristik.
Klick auf Waldbrand USA -> zeigt US-Waldbrand-Artikel
Klick auf Kenia -> zeigt Kenia-Ueberschwemmungs-Artikel
Klick auf Erdbeben -> zeigt naechsten passenden Artikel
Lage-Auswahl zentriert in der Header-Leiste.
Klick auf Waldbrand in USA zeigt jetzt US-Waldbrand-Headlines.
Klick auf Ueberschwemmung in Kenia zeigt Kenia-Headlines.
Nicht mehr die globale Lage-Summary fuer alle Standorte.
Logik: Naechsten Monitor-Standort zur Klickposition suchen (5-Grad-Radius).
Wenn gefunden: dessen ortsspezifische Headlines anzeigen.
Wenn nicht gefunden: globale Lage-Summary als Fallback.
Bei Auswahl einer Lage im Header:
- Monitor-Layer wird automatisch gestartet (Checkbox aktiviert)
- Daten der gewaehlten Lage werden sofort geladen
- Katastrophen-Layer aktualisiert Monitor-Kontext
Bei Abwahl: Monitor-Layer wird gestoppt
Kenia und andere Naturkatastrophen-Standorte erscheinen jetzt
sofort auf dem Globe wenn Naturkatastrophen-Lage gewaehlt wird.
_findMonitorSummary prueft jetzt Globe._currentLageId.
Ohne Lage-Auswahl: keine Monitor-Summary im Popup.
_fetchMonitorContext nutzt die gewaehlte Lage-ID statt alle.
Dropdown in der Top-Leiste zeigt alle oeffentlichen Lagen.
[L] = Live-Monitoring, [R] = Recherche.
Immer nur eine Lage aktiv. Bei Auswahl:
- OSINT Monitor Layer zeigt nur Daten dieser Lage
- Klick auf Katastrophen zeigt Summary dieser Lage
- Sidebar zeigt Punkte dieser Lage
Ohne Auswahl: kein Monitor-Overlay.
SIDEBAR (neu):
- Aufklappbare Uebersicht aller aktiven Datenpunkte rechts
- Suchfeld filtert alle Eintraege
- Sektionen: OSINT Monitor, Katastrophen (auffaecherbar)
- Flug/Schiff/Satelliten als Zaehler
- Klick auf Eintrag fliegt zur Position
- Ein-/ausklappbar per Pfeil-Button am rechten Rand
MONITOR-FEED FIX:
- Nur Lage 45 (Naturkatastrophen international) wird abgefragt
- Keine anderen Lagen mehr im Globe sichtbar
GLOBE -> MONITOR (Auto-Push):
- Alle 10min werden NASA EONET + USGS M4.5+ Erdbeben
automatisch als Artikel in die Naturkatastrophen-Lage (ID 45) gepusht
- Monitor verifiziert und erstellt Zusammenfassung
- Duplikat-Check verhindert doppelte Eintraege
MONITOR -> GLOBE (Klick-Summaries):
- Katastrophen-Layer holt Monitor-Daten beim Start
- Klick auf Katastrophe/Erdbeben zeigt:
1. Ereignis-Details (Typ, Ort, Magnitude)
2. Monitor-Zusammenfassung (wenn Lage in der Region existiert)
- Naechsten Monitor-Punkt im 5-Grad-Radius gesucht
- Summary gekuerzt auf 600 Zeichen, Markdown bereinigt
Bei Klick auf Monitor-Standort erscheint Info-Panel mit:
- Ortsname, Land, Kategorie (farbkodiert)
- Artikelanzahl
- Bis zu 3 relevante Headlines
- Lage-Zusammenfassung aus dem Monitor (gekuerzt, Markdown bereinigt)
- Aktualisierungszeitpunkt der Lage
MONITOR LAYER (neu):
- Neuer Top-Layer "OSINT Monitor" im Panel
- Zeigt geoparsete Standorte aus Monitor-Lagen auf dem Globus
- Farbkodiert: rot=Hauptgeschehen, orange=Reaktionen, blau=Beteiligte
- Labels mit Ortsname + Artikelanzahl bei Zoom
- 2min Refresh, GeoJSON vom Monitor Public API
KATASTROPHEN (erweitert):
- Erdbeben-Layer in Katastrophen integriert (kein separater Toggle mehr)
- Laedt NASA EONET + USGS parallel
- Erdbeben als farbige Punkte (rot=frisch, gelb=alt) mit M-Label
- Katastrophen-Toggle zeigt jetzt alles: Waldbraende, Vulkane,
Stuerme, Fluten UND Erdbeben
Cluster-Klick Distanzen erhoeht: far 2.000->4.000km, medium 500->1.500km.
trackedEntity auf undefined gesetzt vor selectedEntity (verhindert Auto-Tracking).
Flugverkehr + Schiffsverkehr:
- Weit (>5.000km): 5-Grad-Raster-Cluster mit Anzahl-Labels
- Mittel (1.000-5.000km): 2-Grad-Raster-Cluster
- Nah (<1.000km): Einzelne Punkte, Klick zeigt Details
Cluster: Punktgroesse proportional zu sqrt(Anzahl), weisses Count-Label.
Klick auf Cluster zoomt rein. Klick auf Einzelpunkt zeigt Info.
Kamera-Listener reagiert auf Zoom-Aenderungen (20% Schwelle).
Entity API (6.500+ Objekte mit Point+Label+Description) war zu schwer.
PointPrimitiveCollection ist WebGL/GPU-beschleunigt im CLIENT-Browser
und kann hunderttausende Punkte fluessig darstellen.
Klick-Details ueber ScreenSpaceEventHandler mit naechstem-Punkt-Suche.
Kein Server-GPU noetig — alles rendert im Browser des Users.
Flights: OpenSky liefert 6.500+ global, korrekte Hoehenkonvertierung
(ft->m), Cesium Entity-Clustering bei 30px/5min, Labels nur < 800km.
Status-Text zeigt Anzahl nach Laden.
Ships: Entity-Clustering aktiviert (25px/5min), Labels nur < 300km.
Status-Text zeigt Anzahl.
Beide Layer zeigen jetzt ALLE Daten komplett — Ukraine, Belarus,
Nahost, Afrika, Russland, China alles enthalten.
- Animierter Ladebalken unter jedem Layer-Toggle bei Datenabruf
- Status-Text (Lade Daten.../Fehler beim Laden)
- Fetch-Wrapper: nur 401 redirected zum Login, nicht 403
- Ortsnamen: minimumLevel, tileWidth/Height, LINEAR Texture-Filter
fuer konsistente Schriftgroessen beim Laden
Ortsnamen: Esri World Boundaries als zuschaltbarer Imagery-Layer.
InfoBox: CSS-Ausblendung entfernt, Dark-Theme Styling.
Flugverkehr: Batch-Groesse 3, Pause 3s, zufaellige Reihenfolge —
alle Regionen bekommen Daten statt nur Europa.
CLAMP_TO_GROUND durch NONE ersetzt bei Schiffen, Erdbeben, GDELT.
CLAMP_TO_GROUND verursacht Positionsneuberechnung gegen Terrain
bei jeder Kamerabewegung, was zu sichtbarem Mitschleifen fuehrt.