Dubbele knooppunten in knooppuntnetwerken

Ik kom in knooppuntnetwerken wel eens dubbele knooppuntpaaltjes tegen. Dus twee paaltjes kort bij elkaar, allebei met hetzelfde knooppuntnummer erop maar de paaltjes verwijzen beide niet naar alle volgende knooppunten.
Bijvoorbeeld knooppunt 40 in de wandelroute Nederweert, node 42259053 verwijst naar 33, 41 en 48, node 5165642530 verwijst naar 33, 48 en 67. 33 en 48 liggen aan dezelfde weg als de twee 40’s en 67 en 41 gaan dan links en rechts.

Hoe maak je hiervoor de routes het beste?

Ooit heeft Polyglot voor het rcn voor deze situatie het tentakelmodel bedacht.
Een toch wel wat ingewikkeld gebeuren. In VMarc is het geïmplementeerd.
Een groot nadeel is ook dat het forward en backward zoals het tentakelmodel voorschrijft ingaat tegen wat het routerelatievenster als goed ziet. Je krijgt dus routes, die er fout uit zien.

Ik zelf gebruik het voor het rcn niet zoveel meer.
Er zijn tegenwoordig rcn routes, die zich uitstrekken over bijna een kilometer en meerdere aftakkingen hebben. Als je dat vertaalt in het tentakelmodel krijg je iets dat veel mensen niet meer kunnen volgen.

Makkelijker is het om een route tussen beide of soms meer knooppunten te maken. Dus in jouw geval een route 40-40, want wat in het rcn toepasbaar is, is dat ook in het rwn.
Dan heb je 1 route tussen de knooppunten en niet een hele bundel relaties, wat veel lastiger te onderhouden is.

Een route 40-40 ben ik niet zo van gecharmeerd, want als je op het paaltje kijkt dan vraag je je af waar die route naar 40 dan heen gaat. Ik zou zelf liever de routes maken zoals de op de paaltjes staan. Dan krijg je wel een route die van 40 via 40 naar 33 gaat. Ik weet niet of dat in vmarc als incorrect gezien wordt? Ik heb wel eens een foutmelding gezien dat de route via een ander knooppunt gaat, dan zou er eigenlijk ingebouwd moeten worden dat als een route via een zelfde knooppuntnummer gaat het geen fout is.

Als je het stukje tussen beide knooppunten aan alle routes toevoegt, zou dat in een eenvoudig geval als dit geen foutmeldingen moeten geven. Bijvoorbeeld bij een route 33-40-40 worden beide 40’s gezien als een onderdeel van hetzelfde knooppunt (vmarc noteert dat als 40a en 40b).

Eventueel kun je dat tussenstuk ook toevoegen aan de routes naar 41 en 67. Dat 41 niet verwezen wordt van het zuidelijke knooppunt, lijkt eerder een fout. Het is ook erg verwarrend is voor een wandelaar met een kaart die vanaf bijvoorbeeld knooppunt 48 via 40 naar 41 wil wandelen.

In dit soort gevallen (ze komen regelmatig voor) maak ik steeds een route van bv. 40-40.
Als wandelaar verwacht ik dat de paaltjes op de kaart over een komt met de werkelijkheid.
Ze op een andere plek zitten is erg verwarrend.

Zonder bv. de 40-40 route zou je andere routes dubbel moeten invoeren, zoals 30-40 en 30-40-40.
De route die je wilt volgen hangt dan af van het volgend knooppunt.

Dat lijkt mij ook weer niet handig.

Hier ligt knooppunt 30 in de buurt van het 2de knooppunt 30. … en je wordt er zelfs naar verwezen
https://www.mapillary.com/app/?focus=photo&pKey=IMvr8oxBAZZLmQsqkhjysA&lat=51.84459466104653&lng=4.566671422093009&z=18.25325084954444&mapStyle=osm

De meest voorkomende oplossing die ik bij zowel wandel- als fietsknooppunten in OSM tegen kom maakt geen gebruik van een route 40-40. Vooral bij fietsroute zou dat erg onhandig zijn, omdat er vaak een knooppunt uit twee delen bestaat: een op het fietspad links van de weg en een op het fietspad rechts van de weg. Wat dan gedaan wordt is dat het stukje tussen beide knooppunten wordt toegevoegd aan alle routes die bij de knooppunten uitkomen. Er worden dus geen twee routerelaties per verbinding gemaakt.

In het geval dat Maarten Deen aandraagt, zal het stuk tussen de beide palen van knooppunt 40 worden toegevoegd aan de routerelaties 33-40, 40-41, 40-48 en 40-67. Zo worden alle routes met beide knooppuntpalen verbonden.

De tentakelmethode waar dvdhoven naar verwees wordt hier uitgelegd:

http://wiki.openstreetmap.org/wiki/Cycle_Node_Network_Tagging

Bij wandelnetwerken heb je niet te maken met eenrichtingsverkeer, dan blijft het relatief simpel. Bij routes tussen fietsknooppunten lopen heen- en terugroute vaak over verschillende fietspaden, dat maakt het ingewikkelder.

Jouw situatie ziet er schematisch zo uit:

          41
          |
          |
33 ----- 40N <---- 40Z ---- 48
                    |
                    |
                    67

Naar mijn idee sluit de tentakel-aanpak het best aan bij de bebording ‘in het veld’: Het eerste knooppunt vanaf 33 dat je tegenkomt is bv. voorzien van een bordje: “Dit is knooppunt 40, voor 41 linksaf, 67 rechtdoor, 48 rechtdoor”. Bij het punt waar de routes naar 67 en 48 splitsen (knooppunt 40 zuid oftewel 40Z), staat dan alleen: 67 rechsaf, 48 rechtdoor. Zo ken ik het tenminste van de fietsroutes, de wandelroutes zullen misschien iets verschillen. Zo vind je vaak meerdere knooppunten voor de verschillende inkomende routes, op het eerste punt dat er iets te kiezen valt.

Ik maak daaruit op dat de route van 33 naar 40 eindigt bij het eerste van de twee knooppunten (zeg 40-noord of 40N), vanaf daar loop je op de route 40-48 of 40-67. Maar… als je de andere kant op loopt, en je komt bv. van 48, dan eindigt 48->40 bij 40Z, en begint de route van 40 naar 33 dus al bij knooppunt 40Z i.p.v. 40N. Het verbindingsstukje tussen 40Z en 40N wordt dus alleen van zuid naar noord gebruikt voor 33-40 en niet andersom. (En het wordt ook niet altijd gebruikt: als je van 41 via 40 naar 33 loopt, laat je knooppunt 40Z links liggen.)

In OSM wordt dit aangegeven door dit stukje weg als laatste element op te nemen in de routerelatie voor 33-40, met als role forward of backward. Als de richting van dit stukje weg van 40Z naar 40N is, zou het forward worden, omdat de richting hetzelfde is als die waarin (de terugweg van) de route het wegdeel gebruikt. (De afspraak is om de route van het lage naar het hoge knooppuntnummer te sorteren, van 33 naar 40 dus.)

In de routerelatie voor 40-48 wordt het verbindingsstukje dan volgens een analoge redenering het eerste element met als role backward, gevolgd door de andere ways die de route naar 48 vormen. Bij 40-41 staat het stukje vooraan, met als role forward, bij 40-67 vooraan, role backward.

Mocht de verbinding tussen 40N en 40Z in OSM uit twee (of meer) ways bestaan, dan krijg je twee (of meer) ways met forward/backward voorin of achterin de routerelaties.

Voordeel van deze tentakelmethode is dat op alle wegen te vinden is welke routes er gebruik van maken, en dat automatische controle (door bijvoorbeeld osma.vmarc.be) mogelijk is. Zelfs als er in het veld een paaltje verdwenen is, kun je nog direct aan de relaties op de aansluitende wegen zien, welke route waar loopt. Bij knooppunten die in drieën (of meer) gesplitst zijn, is zo’n web van routes 40a-40b, 40b-40c, 40c-40a ook niet echt overzichtelijk.

Ik hoop dat ik het zo enigszins duidelijk heb uitgelegd, als er nog vragen zijn hoor ik het wel.

Eerlijk gezegd snap ik het niet helemaal met forward en backward.
Omdat dit eenrichting voor wandelroutes niet bestaat (of ik ken het niet), heb ik mij er nooit in verdiept.

Bij een paaltje met 40N (waarbij er 40 op de paal staat) staan bij de netwerken die ik ken verwijzingen naar 33, 41, 67 en 48.
Bij het paaltje met 40Z (met hetzelfde nummer 40) staan er ook 4 verwijzingen.

Als ik in het voorbeeld van 33 naar 40 en dan naar 41 loop ga ik:
33-40N + 40N-41

Als ik andersom loop (van 41 naar 33), dan blijft de te wandelenroute hetzelfde.

Als ik van 33 naar 67 loop is het in beide richtingen:
33-40N + 40N-40Z + 40Z-67

Het idee van de forward/backward rollen is dat de oude route ophoudt en de nieuwe route begint bij het eerste knooppunt 40 dat je tegenkomt.

Als we het nu over de route 33-40 hebben, dan krijg je het volgende:

  • Het 40-40-tussenstuk hoort niet bij de heenweg 33-40. Deze houdt op bij knooppunt 40N.
  • Het 40-40-tussenstuk hoort wel bij de terugweg 40-33. Deze begint bij knooppunt 40Z.

Dit is te taggen door de forward/backward role. Het tussenstuk krijgt de rol ‘forward’ om aan te geven dat hij alleen in de richting van de weg (van 40Z naar 40N) bij de route hoort. Dat is dus alleen het deel voor de terugweg.

In deze (eenvoudige) situatie geeft VMarc overigens geen foutmelding als je het tussenstuk toevoegd zonder rollen.

Deze methode, met of zonder forward/backward role, komt naar mijn weten het meeste voor in Nederland.

Maarten Deen geeft aan dat knooppunt 41 niet aangegeven staat vanaf 40Z en knooppunt 67 niet vanaf 40N. Dat lijkt me een fout van de beheerder van het netwerk, omdat het onduidelijkheden oplevert voor wandelaars.

Maar als je vanaf punt 41 komt dan loop je hierna de route 40-33 om bij 33 te komen (zonder tussenstuk)
Dan hoef je toch niet naar 40Z?

Ergens mis ik nog iets.

Helaas komt dit vaker voor. In de gemeente Venray heeft elk dorp zijn eigen netwerkje.
Dan zie een paal van dorp 1 met een nummer aan een andere kant van het kruispunt staan dan een paal van dorp 2 (met hetzelfde nummer).
Of er zit een honderd meter tussen als de palen bij verschillende afslagen staan.

Klopt helemaal, de feitelijke route is identiek. Maar volgens het tentakelsysteem hoort het verbindingsstukje (40N-40Z) op de heenweg (33-40-67) bij de routerelatie 40-67. Op de terugweg (67-40-33) hoort het bij de routerelatie 33-40, de route van 40 naar 33 bevat dit stukje namelijk wel.

Dat komt overeen met de beleving van de wandelaar: ik ben onderweg van 33 naar 40, daarna ga ik naar 67. Ik volg braaf de pijltjes vanaf 33 (links, rechtdoor, etc.). Ah kijk, een knooppunt, nummer 40, klopt helemaal, ik ben er (op het eerste knooppunt 40, “40N” dus eigenlijk). Op naar de volgende, nu de pijltjes naar 67 volgen dus. Bij fietsknooppunten zoals ik ze ken staan er bij 40Z dan alleen pijlen naar 67 en 48, en geen aanduiding “Dit is knooppunt 40”. (Alleen als je over je schouder kijkt naar de bordjes voor de andere richtingen, staat zo’n aanduiding er wel.) Voor je gevoel ben je knooppunt 40 al voorbij, en onderweg van 40 naar 67.

Zoals A67-A67 al schreef, wordt dit verbindingsstuk met de rol forward of backward opgenomen in de routerelaties, afhankelijk van de richting van de way in OSM. Het wordt namelijk maar in één richting gelopen in de route 33-40, de andere richting beland in route 40-67.

Klopt. Het verbindingsstukje heb je niet altijd nodig. Aan de sortering van de routerelatie kun je (of een router) zien welke kant je op moet om naar knooppunt 33 te gaan.

Voor alle duidelijkheid: beide knooppunten horen gewoon met rwn_ref=40 in OSM te staan. Die 40N en 40Z heb ik verzonnen om niet steeds “het noordelijke knooppunt 40” te hoeven schrijven.

Mee eens. Als ik bij 40Z aankom met geplande route …48-40-41… op een blaadje gekrabbeld, heb ik een kaart nodig om te weten hoe ik verder moet. Dat is niet de bedoeling bij wandelknooppunten. Melden bij de beheerder van het netwerk lijkt me.