Vlaamse meldingen missen de geometrische voorfilter #25
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Gemeld door Jelmer op 2026-07-20 na een test met een route die hij vorige week
reed: de app zegt te snel dat er geen doorgang voor fietsers is.
Oorzaak, gemeten in de regressieset:
routeLooptLangs Melvin (Elfstedentocht) GIPOD (Red Loop)
True (eroverheen) 5 0
False (kruist alleen) 9 0
None (onbekend) 3 62
route_loopt_langs()werkt op polylines. GIPOD levert MultiPolygon-zones, dusde functie geeft altijd None terug en de deterministische voorfilter doet bij
Vlaamse meldingen niets. Bij Melvin filtert die 9 van de 17 weg als "je kruist
dit alleen" — precies de filter die destijds de Reitdiepstraat oploste
(TASK-8).
Gevolg: elke Vlaamse zone in de buurt gaat ongefilterd naar het taalmodel, dat
op GIPOD-s eigen tekst "Geen doorgang voor fietsers" concludeert dat je er niet
door kunt. Ook als de werfzone naast de route ligt.
Voorstel: een vlak-variant van dezelfde vraag. Bij een polygoon is de juiste
toets niet "loopt er iets parallel" maar "gaat de route dwars door de zone":
punt-in-polygoon op de routepunten.
Dat vraagt om de zone-geometrie in het interne model; die wordt nu weggegooid
(alleen
vertsblijft over). Twee vliegen: met de geometrie erbij kan de kaartVlaamse zones ook tekenen, wat nu niet gebeurt.
Aandachtspunt: de frontend tekent
restrictions[].polylineals lijn. Een vlakdaarin stoppen kan de kaart breken — eerst nakijken hoe die tekencode met een
(Multi)Polygon omgaat.
Uitvoeren als route-relatie per bron, net als is_snelweg en fiets_relevant nu
al per bron gaan.
Te valideren met de route die Jelmer nastuurt: die moet na de fix geen
onterechte "geen doorgang" meer geven, en de Red Loop moet een flink deel van
de 62 als "kruist alleen" wegzetten.
Definition of Done
Hoe het is opgelost
Afgerond (2026-07-20), gevalideerd op de Vlaamse route die Jelmer aanleverde
(COURSE_487337725, 66,7 km rond Averbode/Demer).
route_relatie is nu bronspecifiek, net als is_snelweg en fiets_relevant:
bron_melvin parallel-en-dichtbij op polylines (ongewijzigd)
bron_gipod punt-in-vlak op de zone (geo.route_door_vlak)
De marge van 20 m is de kern, niet een detail. Zonder marge zag het er
prachtig uit — 23 van de 25 afgeserveerd — maar daar zat G19777350 tussen, met
als tekst "afsluiten en omleiding voorzien voor fietsers en voetgangers", op
16 m. Een echte fietsafsluiting. Oorzaak: een GPX volgt de rijbaan-as terwijl de
werfzone op het fietspad ernaast ligt, dus die zone bevat je routepunten niet.
Binnen 20 m geven we daarom None (onzeker) in plaats van False.
Uitkomst op die route: 25x None wordt 13 False / 10 None / 2 True. De melding op
84 m die zelf zegt "Doorgang blijft mogelijk" wordt afgeserveerd; de echte
afsluiting op 16 m blijft staan.
Red Loop: 62x None wordt 41 False / 17 None / 4 True.
Les: bij een filter die dingen verbergt is de vraag niet "hoeveel ruis haal ik
weg" maar "wat haal ik ten onrechte weg". De eerste versie scoorde beter op het
eerste en faalde op het tweede.
Zijeffect: de zone-geometrie zit nu in het interne model (veld "vlak"), dus de
kaart zou Vlaamse werfzones kunnen tekenen. Nog niet gedaan — de frontend
tekent restrictions[].polyline als lijn en moet eerst met vlakken overweg
kunnen.