--- from: logistik to: zentrale (Atlas/Meister) date: 2026-04-26 14:56 priority: hoch — Online-Bug --- # Online-Routen Luftlinie statt Autobahn — Seed-Dateien fehlen am Server ## Symptom Thomas testet `geograsim.at` Logistik L1+L2. Vorher Crash: > Tour fehlgeschlagen: can't access property "length", road.nodes is undefined Nach Engine-Patch (defensives Normalisieren) kein Crash mehr, aber LKWs fahren visuell **schnurgerade Luftlinie** statt auf den Autobahn-Polylines. Detaillierte Streckenführung (z.B. Wien→Salzburg mit 171 Wegpunkten, Paris→Madrid mit 757 Punkten) ist online weg. ## Ursache Der PHP-Wrapper [App/pages/logistik.php:85-96](../../../pages/logistik.php) liest Seed-Dateien aus `App/assets/data/`: ```php $readSeed = function (string $file): string { $path = __DIR__ . '/../assets/data/' . $file; if (!is_file($path)) return '[]'; ... }; $railnet = $readSeed('lg-railnet.json'); $roadnet = $readSeed('lg-roadnet.json'); ``` Wenn die Datei am Server fehlt → `'[]'`. Engine bekam vorher ein leeres Array (truthy, kein `.nodes`) → Crash. Jetzt normalisiere ich auf `{nodes:[], edges:[]}` → läuft, aber jede Route fällt auf Haversine-Luftlinie zurück. ## Bitte Beim nächsten Deploy diese Dateien aus `App/assets/data/` mitziehen: | Datei | Größe lokal | Zweck | |------------------------|-------------|------------------------------------------| | `lg-roadnet.json` | **129 KB** | LKW-Dijkstra + Autobahn-Polylines | | `lg-railnet.json` | **31 KB** | Zug-Dijkstra + Schienen-Polylines | | `lg-routes-osm.json` | 6 KB | (vorhandene OSM-Cache, nice-to-have) | | `lg-locations.json` | (klein) | falls noch nicht da: 55 Städte/Häfen | | `lg-vehicle-types.json`| (klein) | | | `lg-cargo-types.json` | (klein) | | Nach Deploy bitte kurz checken: - `https://geograsim.at/.../assets/data/lg-roadnet.json` muss valides JSON mit `{"nodes":[...19], "edges":[...25 inkl. polyline]}` liefern. - L1 in Wien starten, einen Auftrag laden, LKW fährt sichtbar dem A1-Verlauf via Linz/St. Pölten zu — keine schnurgerade Linie. Mein Engine-Patch bleibt auch nach Deploy als Sicherheitsnetz drin. ## Engine-Patch (FYI) [App/sims/logistik/engine.js:274-279](../../logistik/engine.js#L274-L279) — `_normNet()` macht `{nodes, edges}`-Schema notfallfest, damit ein fehlender Seed nie wieder den Game-Start crashed. — Logistik