Optimized routing
Test and publish container images / test (push) Successful in 2m21s
Test and publish container images / publish (push) Failing after 4s

This commit is contained in:
BuTzZ
2026-07-27 10:18:31 +02:00
parent 55ce94066e
commit 9813a1fafb
16 changed files with 1602 additions and 364 deletions
+27 -3
View File
@@ -163,14 +163,38 @@ laufende Overpass-Verbindung. Berücksichtigt werden unter anderem
explizit für Boote oder Schiffe freigegebene Flüsse. Gesperrte, private,
stillgelegte oder im Bau befindliche Wege werden ausgeschlossen.
Wenn freie Laufzeitdaten fehlen, stehen zwei klar als nicht amtlich markierte Fallback-Korridore bereit:
Nur im ausdrücklich aktivierten Demo-Modus
`WATERMAPS_DEMO_DATA=true` stehen drei klar als nicht amtlich markierte
Seed-Korridore bereit:
- Emden Außenhafen → Borkum Reede
- Emden Außenhafen → östliche Unterems
- Emden Außenhafen → Ems/Dortmund-Ems-Kanal → Datteln → Datteln-Hamm-Kanal → Wasserwanderrastplatz Hamm-Innenstadt (rund 153 sm)
Der EmdenHamm-Fallback besitzt keine belastbaren Tiefen- oder Schleusenzeitdaten und ist bewusst auf Sportboote bis 2,5 m Tiefgang begrenzt. Vor der Fahrt sind aktuelle Sperrungen, Betriebszeiten, Wasserstände und amtliche Karten zu prüfen. Kostenfreie Inland-ENCs für den Dortmund-Ems- und Datteln-Hamm-Kanal stellt [ELWIS](https://www.elwis.de/DE/dynamisch/IENC/) bereit.
Diese Seed-Geometrien dienen ausschließlich Entwicklung und Demonstration.
Produktiv und im regulären lokalen Containerbetrieb ist der Demo-Modus
deaktiviert. Fehlt dort der vollständige lokale Index beziehungsweise eine
andere konfigurierte Routingquelle, liefert die API
`503 fairway_sources_unavailable`, statt unbemerkt eine grobe Seed-Route zu
zeichnen. Der EmdenHamm-Seed besitzt keine belastbaren Tiefen- oder
Schleusenzeitdaten und ist bewusst auf Sportboote bis 2,5 m Tiefgang begrenzt.
Vor der Fahrt sind aktuelle Sperrungen, Betriebszeiten, Wasserstände und
amtliche Karten zu prüfen. Kostenfreie Inland-ENCs für den Dortmund-Ems- und
Datteln-Hamm-Kanal stellt [ELWIS](https://www.elwis.de/DE/dynamisch/IENC/)
bereit.
Wenn kein Graph passt, liefert die API bewusst `422 no_fairway_route`, damit keine irreführende Luftlinie als Bootsroute gezeichnet wird. `alternatives` im Ergebnis enthält bis zu zwei weitere, topologisch unterschiedliche Optionen.
Wenn eine verfügbare Routingquelle keinen passenden Graphen enthält, liefert
die API bewusst `422 no_fairway_route`, damit keine irreführende Luftlinie als
Bootsroute gezeichnet wird. Start, Zwischenziele und Ziel werden höchstens
150 m vom Graphen entfernt zugeordnet. Die ausgegebene Liniengeometrie
beginnt und endet am tatsächlichen Fahrwasser-Snap; eine ungeprüfte gerade
Zufahrt vom angeklickten Punkt wird nicht als befahrbare Route ausgegeben.
`routeSnaps` enthält dafür Originalpunkt, Snap-Punkt und Abstand. Ab 10 m
erscheint zusätzlich ein sichtbarer Hinweis. `alternatives` im Ergebnis
enthält bis zu zwei weitere, topologisch unterschiedliche Optionen. Wird das
feste Rechenbudget in einem außergewöhnlich dichten Fahrwassernetz ohne
belastbares Ergebnis erreicht, antwortet die API ausdrücklich mit
`422 fairway_search_limited`, statt fälschlich „keine Route“ zu behaupten.
## Kursassistent entlang einer Route