Access PSV

Nu ga ik het toch aan de groep vragen: ik kom er gisteren achter dat bv BRouter me over deze weg wil routeren van Zuid naar Noord:
http://www.brouter.de/brouter-web/#map=16/51.5436/5.0766/standard&lonlats=5.077046,51.540808;5.077626,51.545927&profile=car-fast
Als Tilburger + OSMer was ik verbaasd want daar mag je alleen Noord naar Zuid, sinds aantal jaar.

Dus ik op BRouter forum vraagje stellen, aannemende dat BRouter de mist in gaat:
https://groups.google.com/forum/#!topic/osm-android-bikerouting/6MRteb48rAM
En krijg mooi meteen 2x antwoord en iemand zet meteen zelfs een fixme op het stuk weg dat je hier ziet:
https://www.openstreetmap.org/way/7202768
https://www.google.com/maps/@51.5440518,5.0774738,3a,75y,355.67h,70.34t/data=!3m6!1e1!3m4!1s78AGqvWT12w3UfFaYAXGOA!2e0!7i13312!8i6656

Men geeft me mee dat deze tags incorrect zijn op dit stuk weg dat alleen voor bus_taxi is:
access=permissive
motor_vehicle=permissive

Nu wil ik het ff fixen, maar loop tegen alle tag mogelijkheden en combis aan; aan jullie de vraag wat best te doen hier.
Ik probeer wat combis:

access=no
motor_vehicle=psv

access=no
psv=yes

psv=designated of psv=yes -- nog andere tags? --

En ja, ik doe aan RTFM, maar toch wordt het niet klink klaar helder:
https://wiki.openstreetmap.org/wiki/Key:psv

Met dank weer!

Zie ik het nu verkeerd of is het gewoon een éénrichtingsstraat muv bussen en taxi’s. Dan zou ik hem ook zo mappen.

Het gaat hier inderdaad om een eenrichtingsweg. Dus:

oneway=yes
oneway:psv=no

En op het stukje ten oosten van het middeneiland:

vehicle=no
horse=no
psv=yes

Daarnaast zijn de fietspaden ten onrechte als vrijliggend ingetekend; dit zijn in werkelijkheid fietsstroken.
De tagging tussen de Generaal Smutslaan en het aansluitpunt van de fietspaden zou dan moeten worden:

oneway=yes
oneway:psv=no
oneway:bicycle=no
oneway:mofa=no
oneway:moped=no
cycleway=lane

De gebruikte waarde ‘permissive’ is inderdaad onjuist en zal berusten op een verkeerde interpretatie van die waarde.
De tag motor_vehicle=psv is zeker geen optie want de syntax in onjuist. Access, motor_vehicle en psv zijn allemaal access-keys en kunnen niet elkaar als waarde krijgen.

Dat er bij deze bus-/taxibaan een verkeersbord C02 i.p.v. C01 staat heeft vermoedelijk te maken met de weginrichting. Na de eerste 20 meter is het niet meer een afgebakende busbaan maar gewoon onderdeel van een rijrichting.
De toegang is daarom geregeld voor de weg als geheel en niet voor deze enkele wegstrook.
Voor de weg als geheel geldt niet een geslotenverklaring voor beide richtingen, nee het is in de basis een éénrichtingsweg.

Omdat de bus-/taxibaan in OSM terecht als apart lijnelement staat ingetekend moet je de toegang daarvoor echter wel specifiek aangeven en is gebruik van enkel oneway-tags niet toereikend.

Ik ben het eens met de opmerkingen en voorgestelde tags van 85Bas met de volgende aanpassingen voor het stukje ten oosten van het middeneiland:

  • Access=no i.pv. vehicle=no en horse=no → voetgangers mogen er immers ook niet komen gezien de nabije trottoirs.
  • Oneway:psv=yes i.p.v psv=yes.

Ik zie geen fietssymbolen op het wegdek in Mapillary, dus cycleway=shared_lane i.p.v cycleway=lane voor het noordelijke gedeelte.
Voor de zuidoostelijke tak zou ik i.p.v. oneway:psv=yes gebruiken oneway=yes i.c.m. psv=yes.

De psv=yes overruled dan de oneway=yes waardoor de werking wordt: eenrichtingsverkeer behalve voor psv.

Vanaf de noordzijde wordt de toegang tot die zuidoostelijke tak door een middengeleider aan al het rijverkeer ontzegd.
De doorwerking van alle verkeerstekens samen op de zuidoostelijke tak is aldus: geen toegang voor bestuurders (en voetgangers mogen er ook niet komen) dus access=no + horse=no, maar wel toegang in noordelijke richting voor psv dus oneway:psv=yes.

Het grappige is dus dat een enkel verkeersbord C02 normaal betekent dat je niet in de huidige richting en wel in tegengestelde richting de weg mag gebruiken, terwijl in dit geval juist alleen de huidige richting voor psv is toegestaan en de tegengestelde richting geheel niet is toegestaan.

Bij mij ontstaat de indruk dat een aantal zaken door elkaar worden gehaald.

oneway=yes is geen access-tag en wordt dus niet overruled door psv=yes.

De syntax met oneway= werkt namelijk precies andersom:
oneway=yes wordt overruled door
oneway:psv=no
Dat geldt dus alleen als er geen gescheiden rijbanen zijn, dus voor het N-deel van de weg.

Voor de ZO rijbaan moeten we ons doel dus anders bereiken.
De juiste manier lijkt mij dan
access=no
horse=no
daar moet dan een access-tag aan toegevoegd worden die access=no overruled:
psv:forward=yes

Je hebt gelijk. Ik had in mijn redenatie oneway als access-tag meegenomen i.p.v. als restriction-tag.
Het overruled dus niet maar geeft een aanvullende beperking op de typen van vervoer die toegang hebben.
De combinatie van Alphensebezorger is dus wel correct.

Ja, dat doet waarschijnlijk het meest recht aan de situatie.

Oneway is wel een access tag (zie https://wiki.openstreetmap.org/wiki/Key:oneway))

Oneway=yes is equivalent aan vehicle:backward=no

Dus als psv=yes die oneway niet overruled dan is er iets met de routing engine.

"Interpretation for routing

The oneway tag can be interpreted (for routing purposes) to the generic system as follows:
oneway=yes to vehicle:backward=no"

Het is dus niet equivalent.
Alleen de ontwerper van een navigatie-app kan het wel zo interpreteren.

En het wordt dus ook niet overruled door psv=yes.
Het wordt wel overruled door oneway:psv=no

De bedoelingen van OSM zijn daarmee helder.
Of de ontwerper van een navigatie dat ook correct toepast, weten wij gewoon niet.

‘Can be’ betekent in dit geval gewoon ‘dit is hoe het is’. Je kan het ook niet doen, dan werkt het niet.

Daarom is er ook een ‘generic system’. Om alle access mogelijkheden in 1 systeem onder te brengen. En oneway is een heel duidelijk voorbeel van ‘access’: je mag er namelijk vanaf 1 kant niet in.

Maar goed OSM is vrijheid blijheid. Als een router het anders wil doen, dan wordt het vanzelf een chaos.

Oneway is wel een (access-)restriction-tag, niet een access-tag.
Zie: https://wiki.openstreetmap.org/wiki/Conditional_restrictions#Restriction_type.
Access, maxspeed en oneway zijn verschillende vormen van restriction-tags met elk hun eigen hiërarchie.

Oneway=yes met maxspeed=60 betekent dus: eenrichtingsverkeer metn maximumsnelheid van 60 km/u voor alle verkeer dat (via de access-tags) is toegelaten.

In de Nederlandse verkeersregels is er een klein verschil tussen eenrichting en verboden in te rijden aangaande wel of niet mogen keren en achteruit rijden. Een router/navigatiesysteem zou dit onderscheid eventueel kunnen maken vanuit de tags.

En welke tag zou je dan gebruiken voor “verboden in te rijden”?

Waar staat ‘eigen hiërarchie’? Er staat letterlijk ‘Common examples are access=, maxspeed= and oneway=* restrictions.’.

De pagina voor Oneway (https://wiki.openstreetmap.org/wiki/Key:oneway) verwijst expliciet naar access:

“See Key:access for other possible sub-values.”

De pagina met nederlandse verkeersborden (https://wiki.openstreetmap.org/wiki/NL:Overzicht_Nederlandse_Verkeersborden#C:_Geslotenverklaring)
laat duidelijk zien hoe onzinnig dit ondescheid is:

Een bord C2 geeft ‘oneway=yes’ maar een bord C6 aan een kant van een straat ‘motor_vehicle:backward=no’

Natuurlijk is er een subtiel verschil tussen eenrichtingsverkeer en gesloten voor een bepaalde rijrichting.
Maar dit subtiele verschil betekent niet dat er opeens een nieuwe hierarchie ontstaat.

Historisch gezien zijn oneway en access wel gescheiden. Het heeft wel even geduurd voordat forward en backward geintroduceerd zijn.
Maar nu heeft access een algemeen schema waarmee vrijwel alles uit te drukken valt.

Een access-tag met gebruik van forward of backward als niet aan beide zijden van het wegdeel een verbod wordt aangegeven.
Het verschil tussen geslotenverklaring / verboden in te rijden enerzijds en eenrichting anderzijds is een half jaar geleden besproken in dit topic: https://forum.openstreetmap.org/viewtopic.php?pid=768521#p768521.

Het zijn voorbeelden die naast elkaar bestaan, niet onder elkaar. Vehicle, psv, bicycle, foot, horse, emergency, enz. vallen allemaal onder access. Let wel: tags als vehicle, psv, bicycle zijn een verkorting van access:vehicle, access:psv en access:bicycle.
Oneway en maxspeed vallen niet onder access, ze kunnen niet als sub key van een access-key dienen.
(Access:)psv:oneway bestaat niet. Oneway:psv wel.

Zie hier de access-hiërarchie: https://wiki.openstreetmap.org/wiki/Key:access#Transport_mode_restrictions

De alinea gaat over het gebruik van sub keys zoals in het kopje staat (sub-values is een foutieve benaming).
Een ‘vehicle type’ kan als sub key worden toegevoegd om uitzonderingen aan te geven, zoals oneway:bicycle=no.
Een uitgebreid overzicht van alle vehicle types / transportation modes staat op de pagina over de access-key, zoals hierboven door mij gelinkt. Dat is de reden van de verwijzing.

Wat grappig er staat op de access pagina (https://wiki.openstreetmap.org/wiki/Key:access#Exceptions_to_.27one-way.27_and_related_special_cases) zelfs een voorbeeld:

“bicycle:backward=yes
When cyclists are allowed to travel in both directions on a oneway street (but no lane is present).”

Dus een ‘bicycle:backward’ kan gebruikt worden voor een uitzondering op ‘oneway’. Voor mij is discussie hierbij gesloten.

Zoals het daar staat lijkt het er wel op, al staat er niet expliciet bij dat de ‘oneway street’ dan met oneway=yes getagd zou horen te zijn of met vehicle:backward=no.

Hoe een oneway-tag zich verhoudt tot de access-tags vind ik nergens duidelijk vermeld.
Het lijkt wel logisch om oneway te interpreteren als vehicle:backward=no.
En dan zou de psv=yes inderdaad die tag overrulen.

Het beste lijkt me om zulke specifieke situaties te vinden en dan te testen met verschillende routers. Ik zal een poging wagen.

Ik heb gezocht naar situaties met oneway=yes en bicycle:backward=yes of psv:backward=yes.
Die zijn beperkt beschikbaar in en rondom Nederland.

Enkele enigszins bruikbare voorbeelden van oneway=yes met bicycle:backward=yes en zonder verstorende tags heb ik getest met de fietsrouters van de OSM-website: OSRM en GraphHopper. Dat geeft wisselende resultaten waarbij opvalt dat het uitmaakt of het begin- of eindpunt zich op of dichtbij de betreffende weg bevindt. Zo ja, dan routeert het vaker wel via de backward-richting. Zo nee, dan routeert het vaker niet.

Voor de rest valt op dat vaak uitgebreide en dubbele tagging wordt toegepast, blijkbaar om de routers tegemoet te komen:
https://www.openstreetmap.org/way/23140287
https://www.openstreetmap.org/way/7126445
https://www.openstreetmap.org/way/798520392

Nee, erg duidelijk hoe het zou moeten werken is het niet.

Testen met oneway=yes en bicycle=yes is natuurlijk ook zeer nuttig.

Hier is een geschikte testmogelijk van een (tijdelijke) wegsituatie in Groningen, een traject van enige lengte met oneway=yes en bicycle=yes en geen verstorende tags:

GraphHopper wil absoluut niet tegen de eenrichting in routeren.
OSRM alleen als begin- en eindpunt op of vlakbij het wegdeel liggen, en anders niet.