feat(karte): lokale Deutschland-Basemap statt OpenStreetMap-Kacheln (keine externen CDN)

- static/geo/deutschland-bundeslaender.geojson (BKG, vereinfacht, ~40KB)
- map.js: Tile-Layer entfernt, Bundeslaender-GeoJSON per same-origin fetch
  als Vektor-Hintergrund; Detail-Minikarte als Deutschland-Locator
- hugo.toml: OSM tileURL entfernt, Attribution nur noch als Text
- CSS: neutraler Kartenhintergrund statt Tile-Grau
- Ergebnis: 0 externe Requests (per Playwright-Netzwerk-Audit verifiziert)
This commit is contained in:
maik
2026-08-19 13:16:16 +02:00
parent 7d2949bf42
commit bfcb2ce6c0
6 changed files with 73 additions and 20 deletions
+18 -6
View File
@@ -2,8 +2,9 @@
Hugo-Neubau von [map.offener-prozess.de](https://map.offener-prozess.de/)
(Ablösung des alten WordPress/Listable-Setups). Interaktive Karte der
Schauplätze des NSU-Komplexes mit **Leaflet + OpenStreetMap** (statt der alten
Google-Maps-/Mapbox-Einbindung), im Layout ans Original angelehnt (Split-View:
Schauplätze des NSU-Komplexes mit **Leaflet** und einer **lokalen Deutschland-Karte**
(Bundesländer-GeoJSON im Repo, keine externen Kacheln/CDN DSGVO-freundlich),
im Layout ans Original angelehnt (Split-View:
Kartenliste links, Karte rechts), umgesetzt mit dem Theme
[`themes/op-dz/`](themes/op-dz/) (UIkit 3, Schrift *ABC Favorit*, alle Assets
lokal/DSGVO-konform).
@@ -71,11 +72,22 @@ Der Punkt erscheint automatisch auf allen Karten (Start, Kategorie) und bekommt
eine Detailseite mit Mini-Karte + „Anfahrt per OpenStreetMap". Ein Bild
`cover.jpg` im selben Ordner wird als Card-/Kopfbild genutzt.
## Karte / Kacheln
## Karte (komplett lokal, keine externen CDN)
Standard: OpenStreetMap. Eigener Tile-Server (OSM-Usage-Policy!) in `hugo.toml`
unter `[params.map]` (`tileURL`, `attribution`). 118 Marker werden per
Leaflet.markercluster gebündelt; Farbe = Kategorie (`data/kategorien.yaml`).
Die Basemap ist **keine** externe Kachel (kein OpenStreetMap/CDN, DSGVO-freundlich),
sondern eine lokale **Bundesländer-GeoJSON** unter
[`static/geo/deutschland-bundeslaender.geojson`](static/geo/deutschland-bundeslaender.geojson)
(amtliche BKG-Geometrie, vereinfacht, ~40 KB). `map.js` lädt sie same-origin per
`fetch` und rendert sie vektoriell mit Leaflet (Bundesländer-Grenzen blau, Land
cremefarben). 118 Marker werden per Leaflet.markercluster gebündelt; Farbe =
Kategorie (`data/kategorien.yaml`). Attribution steht als **Text** in `hugo.toml`
unter `[params.map]` (kein Request).
Tradeoff: keine Straßen-Detailtiefe beim Reinzoomen die Karte ist eine
Übersichts-/Verortungskarte. Die Detailseiten zeigen den Ort als Pin auf der
ganzen Deutschland-Silhouette (Locator). Neue amtliche Geometrie:
[isellsoap/deutschlandGeoJSON](https://github.com/isellsoap/deutschlandGeoJSON)
(`2_bundeslaender/3_mittel.geo.json` für mehr Detail).
## Externe Quellen