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