Fix: GEOINT Satellitenkarte grau - Scanline-Overlay und Tile-Layer-Handling korrigiert

- ::after Pseudo-Element entfernt (ueberdeckte Tiles)
- position:relative vom map-container entfernt
- Tile-Layer Entfernung in separatem Array (vermeidet eachLayer-Mutation)
- pane:overlayPane von Labels entfernt
- bringToBack() auf Satellite-Layer
Dieser Commit ist enthalten in:
Claude Dev
2026-03-24 09:42:21 +01:00
Ursprung b2be1358ab
Commit 9941ee646e
3 geänderte Dateien mit 13 neuen und 29 gelöschten Zeilen

Datei anzeigen

@@ -36,20 +36,7 @@
filter: brightness(0.88) contrast(1.08) saturate(0.85); filter: brightness(0.88) contrast(1.08) saturate(0.85);
transition: filter 0.4s ease; transition: filter 0.4s ease;
} }
.geoint-active::after { /* Scanline-Overlay (subtiler Effekt, kein Blocking) */
content: '';
position: absolute;
inset: 0;
pointer-events: none;
z-index: 800;
background: repeating-linear-gradient(
0deg,
transparent,
transparent 3px,
rgba(0, 255, 100, 0.012) 3px,
rgba(0, 255, 100, 0.012) 6px
);
}
.geoint-active .map-empty { display: none !important; } .geoint-active .map-empty { display: none !important; }
/* Gruener Akzent am Card-Header wenn aktiv */ /* Gruener Akzent am Card-Header wenn aktiv */
@@ -297,12 +284,4 @@
[data-theme="light"] .geoint-active .leaflet-tile-pane { [data-theme="light"] .geoint-active .leaflet-tile-pane {
filter: brightness(0.95) contrast(1.05) saturate(0.9); filter: brightness(0.95) contrast(1.05) saturate(0.9);
} }
[data-theme="light"] .geoint-active::after { /* Light theme scanline overlay disabled */
background: repeating-linear-gradient(
0deg,
transparent,
transparent 3px,
rgba(0, 100, 50, 0.008) 3px,
rgba(0, 100, 50, 0.008) 6px
);
}

Datei anzeigen

@@ -417,7 +417,7 @@
</button> </button>
</div> </div>
</div> </div>
<div class="map-container" id="map-container" style="position:relative"> <div class="map-container" id="map-container">
<div class="map-empty" id="map-empty">Keine Orte erkannt</div> <div class="map-empty" id="map-empty">Keine Orte erkannt</div>
</div> </div>
<div class="geoint-timeline" id="geoint-timeline" style="display:none"> <div class="geoint-timeline" id="geoint-timeline" style="display:none">

Datei anzeigen

@@ -70,19 +70,24 @@ const GEOINT = {
// ----------------------------------------------------------------------- // -----------------------------------------------------------------------
_applySatelliteTiles(map) { _applySatelliteTiles(map) {
if (!map) return; if (!map) return;
// Bestehende Tile-Layer entfernen // Bestehende Tile-Layer in separatem Array sammeln, dann entfernen
var toRemove = [];
map.eachLayer(function(layer) { map.eachLayer(function(layer) {
if (layer instanceof L.TileLayer) map.removeLayer(layer); if (layer instanceof L.TileLayer) toRemove.push(layer);
}); });
toRemove.forEach(function(layer) { map.removeLayer(layer); });
// Esri World Imagery
this._satTileLayer = L.tileLayer( this._satTileLayer = L.tileLayer(
'https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}', 'https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}',
{ attribution: '&copy; Esri &mdash; Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, GIS User Community', { attribution: 'Tiles &copy; Esri', maxZoom: 19, noWrap: true }
maxZoom: 18, noWrap: true }
).addTo(map); ).addTo(map);
// Ortsnamen-Overlay
this._satLabelLayer = L.tileLayer( this._satLabelLayer = L.tileLayer(
'https://server.arcgisonline.com/ArcGIS/rest/services/Reference/World_Boundaries_and_Places/MapServer/tile/{z}/{y}/{x}', 'https://server.arcgisonline.com/ArcGIS/rest/services/Reference/World_Boundaries_and_Places/MapServer/tile/{z}/{y}/{x}',
{ maxZoom: 18, noWrap: true, pane: 'overlayPane' } { maxZoom: 19, noWrap: true }
).addTo(map); ).addTo(map);
// Satellite nach hinten, damit Marker darueber liegen
if (this._satTileLayer.bringToBack) this._satTileLayer.bringToBack();
}, },
_restoreOsmTiles(map) { _restoreOsmTiles(map) {