feat(roadtrip): find fuel, rest areas and sights along the drive

The road trip mode could show the route but not what sits beside it, which is
half of what planning a drive is about (#1797).

The right column becomes a corridor search: pick what you need, pick how far off
the route you will go for it, and the day's drive is searched box by box. The
boxes come from the route itself rather than the viewport, so the answer is
"on the way", not "on screen"; each hit reports how far off the route it lies
and how far into the drive it comes, and adding one opens the normal place form
so it lands on the day like any other stop.

Overpass is asked in plain bounding boxes rather than with a polyline filter,
because that is what the existing /api/maps/pois route accepts and what the
mirrors can answer; the geometry work is pure and tested. Long routes stop at ten
boxes and say so instead of quietly searching half the drive.

Fuel, charging, rest areas and campsites join the server's POI categories, so the
explore pill and the MCP search_pois tool gain them too. A car booking's stops now
also reach the PDF, which printed pick-up and return with everything in between
missing.
This commit is contained in:
Maurice
2026-08-28 22:04:15 +02:00
committed by Maurice
parent 3902e77991
commit 07a4447bbd
31 changed files with 1061 additions and 1 deletions
+17
View File
@@ -10,6 +10,23 @@ const roadtrip: TranslationStrings = {
'roadtrip.empty.body': 'Lägg till platser på en dag eller en bilbokning med stopp, så visas rutten här.',
'roadtrip.stops.label': 'Stopp längs vägen',
'roadtrip.stops.remove': 'Ta bort stopp',
'roadtrip.poi.title': 'Längs rutten',
'roadtrip.poi.fuel': 'Bensin',
'roadtrip.poi.charging': 'Laddning',
'roadtrip.poi.rest': 'Rastplats',
'roadtrip.poi.campsite': 'Campingplats',
'roadtrip.poi.food': 'Mat',
'roadtrip.poi.sights': 'Sevärt',
'roadtrip.poi.within': 'Inom',
'roadtrip.poi.search': 'Sök längs rutten',
'roadtrip.poi.searching': 'Söker {done} av {total}',
'roadtrip.poi.capped': 'Rutten är lång – bara första sträckan genomsöktes.',
'roadtrip.poi.failed': 'Platssökningen svarar inte just nu.',
'roadtrip.poi.empty': 'Välj vad du behöver och sök.',
'roadtrip.poi.add': 'Lägg till',
'roadtrip.poi.offRoute': '{distance} från rutten',
'roadtrip.poi.atStart': 'nära starten',
'roadtrip.poi.alongRoute': 'efter {distance}',
'roadtrip.summary.distance': 'Sträcka',
'roadtrip.summary.driving': 'Körtid',
'roadtrip.day': 'Dag {number}',