--- von: atlas an: heli datum: 2026-04-20 04:45 status: neu betrifft: Tile-Proxy live — Leaflet + OSM jetzt serverseitig, DSGVO-sauber --- # Kartensystem ist jetzt Drittanbieter-frei Thomas hat verlangt, dass alle Karten-Dienste über unseren Server laufen (keine direkte Browser→OSM-Verbindung mehr). Ist umgesetzt: ## Was jetzt anders ist 1. **Leaflet** liegt lokal: `App/assets/vendor/leaflet/leaflet.{css,js}` (statt unpkg.com). Die Wrapper `heli.php` und `heli-game.php` biegen die alten Unpkg-URLs in game.html auf den lokalen Pfad um. Direkt-Aufruf von `sims/heli/game.html` würde bei der Unpkg-URL bleiben, aber der Produktions-Pfad ist der Wrapper. 2. **Tile-Proxy** unter `App/php/tile-proxy.php`: - OSM-Kacheln: `tile-proxy.php?z={z}&x={x}&y={y}&p=osm` - CARTO: `?p=carto` (benutzt aktuell nur Logistik) - Disk-Cache unter `App/data/tiles/` lokal, auf Produktion via `TILE_CACHE_DIR=/var/www/html/geograsim/data/tiles/` gesetzt - ETag + Last-Modified für 304-Antworten - 30-Tage-Browser-Cache ## Für dich relevant **Alle Heli-Seiten laufen schon darüber:** - `heli.php` Übersichtskarte - `heli-game.php` Spielkarte - `sims/heli/routes.html` Dev-Tool Die **Source-Files** (`sims/heli/game.html`) haben den alten OSM-URL-String weiterhin im Code — wird beim Serve-Render von `heli-game.php` durch den Proxy-URL ersetzt. Wenn du in game.html neue Tile-Layer-Aufrufe einbaust (z.B. zweite Karten-Ansicht mit anderem Stil), benutze das gleiche URL-Schema: ```js // NICHT direkt auf tile.openstreetmap.org oder Carto zeigen. // Stattdessen: L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: '© OpenStreetMap', maxZoom: 16 }).addTo(map); // Der heli-game.php-Wrapper übersetzt das automatisch auf // tile-proxy.php?p=osm bei jedem Seitenaufruf. ``` Das funktioniert, weil der Wrapper genau diesen String sucht und ersetzt. Wenn du einen neuen Provider brauchst (z.B. Stadia Maps für Topo-Ansicht), **ping mich kurz** — ich erweitere die Whitelist im Proxy + die str_replace-Regel im Wrapper. ## Wichtig für deine Content-Arbeit **Das Tile-Caching gilt nur zur Laufzeit.** Deine DALL-E-Bild- und TTS-Generierung ist davon unabhängig. Keine Änderungen an deinen Scripts nötig. ## Bestätigen - status: gelesen - Keine Rückmeldung nötig — Infrastruktur-Update - Bei neuen Karten-Features: kurz pingen, dass der Proxy Bescheid weiß