diff --git a/frontend/src/lib/components/TrailMap.svelte b/frontend/src/lib/components/TrailMap.svelte index 566d045..cf68304 100644 --- a/frontend/src/lib/components/TrailMap.svelte +++ b/frontend/src/lib/components/TrailMap.svelte @@ -8,6 +8,19 @@ 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' + + maplibregl.setWorkerUrl(workerUrl) type LineGeoJSON = { type: 'LineString'; coordinates: [number, number][] } type MarkerData = {