NL:Advanced Tagging
Under Construction
Doel
Op deze pagina wil de nederlandse OSM Community een voorstel uitwerken voor een uitbreiding van de manier waarop tot op heden kaarteigenschappen zijn getagd.
Definities
RVV 1994:
- wegen: alle voor het openbaar verkeer openstaande wegen of paden met inbegrip van de daarin liggende bruggen en duikers en de tot die wegen behorende paden en bermen of zijkanten
- fietsstrook: door doorgetrokken of onderbroken strepen gemarkeerd gedeelte van de rijbaan waarop afbeeldingen van een fiets zijn aangebracht;
Achtergrond
Het huidige OSM tagging systeem is gebaseerd op <Key>=<Value> paren. Dit geldt ook voor wegen. We wijken in ons voorstel hier niet vanaf, maar we gaan het wel aanvullen. Een weg wordt momenteel in kaart gebracht met de tag 'highway'. Deze kan verschillende waarden hebben, waaronder primary, cycleway en footway. Aan deze weg worden dan eigenschappen meegegeven, waaronder 'access', 'surface' en 'oneway' eigenschappen. Ook kan er vermeld worden of er een naastliggend fiets- dan wel voetpad is met de tag 'cycleway=track/lane' of 'footway=yes'.
Dit is tot op heden de bekende werkwijze, maar staat hier nogmaals opgeschreven, juist om aan te tonen wat er nu gebeurt.
Bij bovenstaande methode wordt het al lastig om van het naastliggende fietspad de ondergrond, de breedte of de eenrichtinswaarde op te geven. Met 'oneway' is een poging gedaan (opposite_lane), maar dit is geen volwaardige oplossingen.
Ook het niet kunnen omschrijven van eigenschappen van rijstroken op dezelfde weg, ook in tegenoverliggende richting is niet mogelijk. Bijvoorbeeld het taggen van een maximum snelheid van 70 km/u aan de ene kant en van 90 km/u de andere richting op.
Veel ideeen en proposals zijn al geopperd op verscheidene wikipagina's [1].
Zie daarvoor de proposed features 'left/right' [2] in combinatie met 'busway' [3]. Ook Driver2 heeft een goede poging gewaagd [10]. Een aantal users hebben oplossingen gezocht in de vorm van relaties [4][5]. Anderen proberen het op te lossen met 'wayparts [5]', 'multilanes' [6] en het duitse 'linienbundel' [7].
Een veelgebruikte opplosing is het in kaart brengen van alle weggedeeltes waar mogelijk. In plaats van cycleway=track, worden alle fietspaden als highway=cycleway in kaart gebracht. Om dit ook te doen voor busbanen, uitvoegstroeken en voetpaden/stoepen is echter praktisch onhaalbaar.
Het huidige tagging schema en de geopperde oplossingen kunnen niet alle problemen oplossen, zijn niet generiek en/of zijn niet compleet. Ons voorstel zal bijna alle problemen op lossen en extra mogelijkheden bieden om de werkelijkheid te beschrijven.
Voorstel
Het hier gepresenteerde voorstel vloeit voort uit een eerste idee van user ZMWandelaar op het nederlandse forum [8]. Gecombineerd met al bestaande ideeen resulteerde dit in de uitbreiding op het huidige tagging schema. Hierbij kan meer gedetailleerd worden omschreven hoe een weggedeelte er uitziet.
Groot voordeel van deze uitbreiding is dat het huidige systeem gewoon blijft werken. Iedereen kan blijven werken zoals hij/zij al deed en er kan ineens veel meer en sneller omschreven worden.
Short explanation
De key waarden van het key:value paar gaan bestaan uit:
way:side:lane:property=value
Way=highway/cycleway/footway/railway/waterway/barrier (default=highway)
side=right/left/both (default=both)
lane=1/2/3/n/all (default=all)
property=all normal values (eg. access, oneway, width, surface) (default="empty"; or new key 'type')
See the long explanation for detailed examples.
Long Explanation
Het key=value principe blijft ongewijzigd. Echter, het key gedeelte wordt aangepast. Met name moet dan duidelijk worden van welk weggedeelte we de eigenschap willen omschrijven. Dat gebeurt nu impliciet ook al, alleen kan het maar op het eerst beschreven weggedeelte. De default is de gehele way, maar kan verder gespecificeerd worden naar welk type weg, het linker of rechterdeel en zelfs nog naar de rijbanen/stroken (lanes). Daarna kiest men de eigenschap die men wil omschrijven.
Er moeten een aantal extra key en value waarden bijkomen.
In plaats van alleen verschillende soorten highway te definieren, kan dat nu ook met cycleway, footway en andere wegen.
Er zal namelijk gekozen moeten worden tussen een lane of een track. Een lane is niet fysiek gescheiden van de hoofdweg, waar een track wel gescheiden is van de hoofdweg. Tevens kan men 'yes' of 'no' opgeven. 'No' impliceert geen weg en 'yes' wel. 'Yes' kan als default dan naar lane of track verwijzen. Dat is nader te bepalen.
Deze values (primary/cycleway/track) behoren alle direct aan het way gedeelte. Ik zou ze graag aan een property willen koppelen. Deze wordt dan 'type', maar zou ook weggelaten kunnen worden. Het is tevens de default van de key 'property'.
Om aan te geven of we het rechter of linker deel van de weg bedoelen, kunnen we de key 'side' toepassen. Deze waarde kan bestaan uit right of left. Dit is dan relatief aan de wegrichting net zoals de key 'oneway'. Als we voor links en rechts iets willen omschrijven kunnen we both gebruiken, maar dit is ook de default en kan dus weggelaten worden.
Willen we nog specifieker gaan omschrijven, dan kunnen we de key 'lane' gebruiken. Deze heeft alle mogelijke nummerieke waarden of 'all'. 'All' is tevens de default en kan dus weggelaten worden.
Tevens komt er bij de key 'oneway' een extra waarde bij: 'opposite'. Hier is dus inrijden toegestaan tegengesteld aan de wegrichting. Deze bestaat eigenlijk al als -1, maar dat is minder duidelijk dan 'opposite'.
Ook de key 'place' zou ik graag introduceren. Daarmee kan aangegeven worden waar welk weggedeelte ligt. De waardens zijn dan center/innerside/inside/outside/outerside. De waarden hiervoor zijn lopen van het midden van de weg naar buiten toe.
Kiest men ook hier weer een redelijke standaard, dan zou je er weinig mee te maken krijgen en zal het ook intuitief moeten werken.
Hieronder volgen enkele simpele voorbeelden. Meer ingewikkelde voorbeelden volgen daaronder. Voor aannames en default waarden, zie de sectie "geavanceerd" onderaan deze pagina.
Simple examples
Weg A (normaal):
highway=primary
oneway=yes
In het bovenstaande voorbeeld is de highway van het type primary. Deze highway heeft verder de eigenschap dat het een eenrichtingsweg is. Je zou het dus ook kunnen opschrijven als:
Weg A (voluit)
highway:both:all:type=primary
highway::both:all:oneway=yes
Omdat highway, both, all en type default zijn kun je ook schrijven:
Weg A (nieuw schema)
highway=primary
oneway=yes
Dit is *precies* hetzelfde als nu het geval is. Men kan dus gewoon blijven taggen zoals men gewend was.
In onderstaande voorbeeld heeft een weg aan beide kanten een fietspad van zand.
Weg B:
highway=primary (== type=primary, er moet echter iets in het 'key' veld staan.)
oneway=yes (highway=default)
cycleway=track (:type=default)
cycleway:surface=sand
Een weg met rechts een busbaan
Weg C:
highway=primary
busway:right=lane
busway:width=4 (:right kan weggealten worden. Er is immers geen linker busbaan.)
Weg D:
waterway=ditch
barrier:left=wire_fench
Weg E:
highway=primary
railway:left=rail
Weg F:
busway with both sides a cycleway and at the rightside a sidewalk.
highway=busway
cycleway=track
footway:right=lane
Voordelen
- Zeer gedetaileerde mapping mogelijk
- Kan gebruikt worden met huidige systeem (backwards compatible)
- Human readable
- Minimale toevoeging van extra tags
- Geen gestoei met relaties
- Versimpeling van kruispunten
- Veel problemen in 1 keer opgelost
- Ook toepasbaar met/op waterway/railway/barrier
- Goede routering mogelijk
- Goede rendering mogelijk
Nadelen
- Mogelijk veel keys op een weg, wat het overzicht niet ten goede komt.
- Veel *:*:* als key
- Een overmaat aan mogelijkheden
Complex examples
Volgende voorbeelden zijn afkomstig van de wikipagina "Bicycle" [9]
to-do: Deze kunnen daar natuurlijk ook op, of als aparte pagina.
to-do2: fix layout
L1a highway=* cycleway=lane
L1b highway=* cycleway:right=lane cycleway:oneway=no
L2 highway=* cycleway:right=lane
M1 highway=* oneway=yes cycleway=lane
M2(a) highway=* oneway=yes cycleway:right=lane
M2(b) highway=* oneway=yes cycleway:left=lane cycleway:oneway=opposite
M3a highway=* oneway=yes cycleway:left=lane
M3b highway=* oneway=yes cycleway:right=lane cycleway:oneway=opposite
M4 highway=* sepperated=yes cycleway=lane
M5 highway=* sepperated=yes cycleway:right=lane
T1 highway=* cycleway=track
T2 highway=* cycleway:right=track cycleway:oneway=no
T3 highway=* oneway=yes cycleway:right=track cycleway:oneway=no
S1 highway=* bicycle=opposite
S2 highway=* cycleway:right=lane cycleway:left=track
S3 highway=* cycleway=lane footway=lane footway:place=inside
S4 highway=* cycleway=track footway=lane
B1 highway=* cycleway=lane busway:right=lane busway:place=outside
B2 highway=* cycleway=lane busway:right=lane
B3 highway=* busway:right=lane busway:bicycle=yes cycleway:left=lane
B4 highway=* busway:right=track busway:bicycle=yes
B5 (option 1) highway=* right:lanes=1 left:lanes=2 busway:right=lane busway:bicycle=yes
B5 (option 2) highway=* lanes=2 left:2:access=no left:2:psv=yes left:2:bicycle=yes
B6 highway=* oneway=yes lanes=2 busway:left=lane
Geavanceerd
Om met dit schema goed te werken zijn er enkele afspraken nodig of de voorwaarden en defaults die er gekozen moeten worden.
- Lane numbering: 5 4 3 2 1 : 1 2 3 4 5
Deze begint in het midden van de weg en loopt naar buiten toe op. Hier is voor een nummering gekozen om de key waarde kort te houden.)
- Place numbering: center / innerside / inside / outside / outerside
Deze begint in het midden van de weg en loopt naar buiten toe.
Hier is voor een langere omschrijving gekozen, omdat dat vaak duidelijker is dan iets abstracts als een getal.
Standaard staat de highway in het midden. Naar buiten toe loopt dit naar busway/railway/cycleway/footway/waterway/barrier.
Voor een railway in het midden, daarnaast een fietspad, busbaan en een stoep.
railway=rail
railway:place=center
cycleway=track
cycleway:place=innerside
busway=lane
footway=lane
- De lanes en tracks zijn ten opzichte van het weggedeelte liggend aan de binnenkant van het betreffende weggedeelte. Zie complex example S4.
- De defaults voor oneway moeten heroverwogen worden. Standaard is een oneway inpliciet voor beide richtingen.
cycleway=track impliceert dus een cycleway:right:oneway=yes en cycleway:left:oneway=opposite (of -1). Een lane of track aan de rechterkant is dus altijd oneway=yes en aan de linkerkant oneway=opposite.
Sources and Links
- Users:cmuelle8/multiple way tagging on single geometry
- Proposed features/right left
Initiator: Esperanza - Key:busway
Initiator: Esperanza - Proposed features/lane and lane group.
Initiator: Tordanik - User:Ömmes/Wayparts
Initiator: Ömmes - User:Santiago1504/MultiLane
Initiator: Santiago1504 - WikiProject Germany/Workshops/Linienbündel
Initiator: Mueck - Bijfuncties van een weg
Initiator: ZMWandelaar - Bicycle
Initiator: Pieren - Proposed features/Advanced footway and cycleway
Initiator: Driver2 - Approved features/Road crossings
Initiator: Nickvet419 - Proposed features/lane directions
Initiator: Smurf - DE:Rollstuhlfahrer-Routing
Initiator: Lulu-Ann - http://wiki.openstreetmap.org/wiki/Proposed_features/Tag_structures
Initiator: Driver2 - http://trac.openstreetmap.org/ticket/1283
Examples Bycicle Page
This is a list of suggestions for how to enter and tag bicycle and cycleway related data into OSM. Notice that in all situations only one way is used. This is to show the possiblities of the Advanced Tagging scheme. See the wiki Bicycle for other solutions.
Cycle features
lanes and tracks are represented and tagged differently in OSM. A track is separate from the road (off-road) and a lane lies within the roadway (on-road).
The tables below with many examples and pictures are for right-drive countries.
Cycle lanes in bidirectional motor car roads
A lane marked on a portion of a carriageway (UK), roadway or shoulder (USA), designated for cyclist use.
Ref | Context | Photo | OSM | Description |
---|---|---|---|---|
L1a | Cycle lanes on left and right sides of the road. | |||
L1b | Bidirectional cycle lane on right side of the road.
Way A : highway=* + cycleway:right=lane + cycleway:oneway=no | |||
L2 | Oneway cycle lane on right side of the road only.
Way A : highway=* + cycleway:right=lane (nb: bikes can use the normal highway on the left side) |
Cycle lanes in oneway motor car roads
Ref | Context | Photo | OSM | Description |
---|---|---|---|---|
M1 | Cycle lanes on left and right sides of the oneway road. | |||
M2(a) | Oneway cycle lane on right side and same direction of the oneway road.
Way A : highway=* + oneway=yes + cycleway:right=lane | |||
(M2b) | Oneway cycle lane on left side and same direction of the oneway road.
Way A : highway=* + oneway=yes + cycleway:left=lane + cycleway:oneway=opposite | |||
M3a | Oneway cycle lane on opposite way of the oneway road.
Way A : highway=* + oneway=yes + cycleway:left=lane | |||
M3b | Oneway cycle lane on the oneway road. The cyclelane is oneway in the opposite direction as the road
Way A : highway=* + oneway=yes + cycleway:right=lane + cycleway:oneway=opposite | |||
M4 | Oneway cycle lane on right side of separated oneway roads.
Way A : highway=* + segregated=yes + cycleway=lane
| |||
M5 | Oneway cycle lane on right side of a separated oneway road.
Way A : highway=* + segregated=yes + cycleway:right=lane
|
Cycle tracks
Road (UK) or path (USA, Canada) dedicated to cyclists on separate right of way.
Ref | Context | Photo | OSM | Description |
---|---|---|---|---|
T1 | Cycle tracks on left and right sides of the road.
Way A : highway=* + cycleway=track
| |||
T2 | Bidirectional cycle track right side of the road.
Way A : highway=* + cycleway:right=track + cycleway:oneway=no
| |||
T3 | Bidirectional cycle track right side of the one way road.
Way A : highway=* + oneway=yes + cycleway:right=track + cycleway:oneway=no
|
Miscellaneous
Ref | Context | Photo | OSM | Description |
---|---|---|---|---|
S1 | Cycling opposite to the oneway car traffic without dedicated lane/track (in some countries only). | |||
S2 | Cycle track on left side and cycle lane on right side of the road.
Way A : highway=* + cycleway:left=track + cycleway:right=lane | |||
S3 | If sidewalks are considered as implied and simplicity kept
Way A : highway=* + cycleway=lane + footway=lane + footway:place=inside | |||
S4 | Easiest (and correct solution for autorouting)
Way A : highway=* + cycleway=track + footway=lane
|
Cycle lanes and bus/taxi lanes
Ref | Context | Photo | OSM | Description |
---|---|---|---|---|
B1 | Cycle lanes on left and right sides of the road with a bus/taxi only lane.
Way A : highway=* + cycleway=lane + busway=lane + footway:place=outside | |||
B2 | Cycle lanes on left and right sides of the road after a bus/taxi only lane in right side.
Way A : highway=* cycleway=lane + busway:right=lane | |||
B3 | Cycle lane on left side of the road and a shared cycle lane with a bus/taxi lane in right side..
Way A : highway=* + cycleway:left=lane + busway:right=lane + busway:bicycle=yes/designated | |||
B4 | Cycle track shared with a bus/taxi track in right side of the road.
Way A : highway=* + busway:right=track + busway:bicycle=yes/designated | |||
B5 | Cycle lane shared with a bus/taxi lane on right side of the road (in some countries only).
Way A : highway=* + right:lanes=1 + left:lanes=2 + busway:right=lane + busway:bicycle=yes/designated
| |||
B6 | Cycle lane shared with a bus/taxi lane in opposite direction of the oneway road.
Way A : highway=* + oneway=yes + lanes=2 + busway:left=lane + busway:bicycle=yes/designated |
Mapnik Rendering oplossingen
- ↑ any type of motor car roads in the class "highway" like primary/secondary/tertiary/unclassified/residential/etc.