diff --git a/frontend/src/lib/components/TrailMap.svelte b/frontend/src/lib/components/TrailMap.svelte index cf68304..c4fee32 100644 --- a/frontend/src/lib/components/TrailMap.svelte +++ b/frontend/src/lib/components/TrailMap.svelte @@ -8,17 +8,20 @@ import * as maplibregl from 'maplibre-gl' import type { Map as MapLibreMap, Marker } from 'maplibre-gl' import 'maplibre-gl/dist/maplibre-gl.css' - // MapLibre 6 liegt als drei Dateien vor und lädt seinen Worker zur - // Laufzeit über import.meta.url aus dem eigenen Verzeichnis nach. Vites - // Dependency-Optimierung bündelt aber nur den Haupteinstiegspunkt nach - // node_modules/.vite/deps — daneben liegt keine Worker-Datei. Der Worker - // startet dann zwar, sein Import läuft ins Leere, und er antwortet auf - // keine Nachricht mehr. Folge: GeoJSON-Quellen bleiben dauerhaft im - // Ladezustand, es wird keine Trail-Linie gezeichnet. Rasterkacheln - // brauchen keinen Worker, deshalb erscheint die Karte trotzdem und der - // Fehler sieht nach fehlenden Daten aus. - // Der explizite Pfad umgeht das: ?url liefert die echte Datei-URL. - import workerUrl from 'maplibre-gl/dist/maplibre-gl-worker.mjs?url' + // MapLibre 6 liegt als drei Dateien vor (Hauptdatei, shared, worker) und + // lädt den Worker zur Laufzeit relativ zum eigenen Verzeichnis nach. Beides + // — Vites Dependency-Optimierung im Dev-Modus wie der Produktionsbuild — + // bringt den Worker nicht an eine Stelle, an der er seine Nachbardatei + // maplibre-gl-shared.mjs findet. Der Worker startet dann zwar, sein + // Import läuft ins Leere, und er antwortet auf keine Nachricht mehr. + // Folge: GeoJSON-Quellen bleiben dauerhaft im Ladezustand, es wird keine + // Trail-Linie gezeichnet. Rasterkacheln brauchen keinen Worker, deshalb + // erscheint die Karte trotzdem und der Fehler sieht nach fehlenden Daten + // aus. + // ?worker&url bündelt den Worker samt Abhängigkeiten zu einer eigenständigen + // Datei — ein blosses ?url würde nur die Rohdatei kopieren und ihren + // relativen Import auf ./maplibre-gl-shared.mjs unaufgelöst lassen (404). + import workerUrl from 'maplibre-gl/dist/maplibre-gl-worker.mjs?worker&url' maplibregl.setWorkerUrl(workerUrl)