---
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ß
