1e51ef7def
- Konzept/, didaktik_geografie/, didaktik_simulation/, v2-modules/, v2-platform/ - 12 code-workspace-Files - STATUS-*.md - viele M/D/R-Änderungen an bereits getrackten Files - .gitignore verstärkt: **/.humaninput/, **/secret_keys.txt Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
68 lines
2.5 KiB
Markdown
68 lines
2.5 KiB
Markdown
---
|
|
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
|