NL:Advanced Tagging

From OpenStreetMap Wiki
Jump to navigation Jump to search

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

  1. Users:cmuelle8/multiple way tagging on single geometry
  2. Proposed features/right left
    Initiator: Esperanza
  3. Key:busway
    Initiator: Esperanza
  4. Proposed features/lane and lane group.
    Initiator: Tordanik
  5. User:Ömmes/Wayparts
    Initiator: Ömmes
  6. User:Santiago1504/MultiLane
    Initiator: Santiago1504
  7. WikiProject Germany/Workshops/Linienbündel
    Initiator: Mueck
  8. Bijfuncties van een weg
    Initiator: ZMWandelaar
  9. Bicycle
    Initiator: Pieren
  10. Proposed features/Advanced footway and cycleway
    Initiator: Driver2
  11. Approved features/Road crossings
    Initiator: Nickvet419
  12. Proposed features/lane directions
    Initiator: Smurf
  13. DE:Rollstuhlfahrer-Routing
    Initiator: Lulu-Ann
  14. http://wiki.openstreetmap.org/wiki/Proposed_features/Tag_structures
    Initiator: Driver2
  15. 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 left right.svg
Dsc01078 clip.jpg
Way A.png
Cycle lanes on left and right sides of the road.

Way A : highway=*[1] + cycleway=lane

L1b
Cycle lanes both right.svg
Neuss Stephanstr dsc01113.jpg
Way A.png
Bidirectional cycle lane on right side of the road.

Way A : highway=* + cycleway:right=lane + cycleway:oneway=no

L2
Cycle lanes right only.svg
Way A.png
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
Oneway cycle lane left right.svg
Way A.png
Cycle lanes on left and right sides of the oneway road.

Way A : highway=* + oneway=yes + cycleway=lane

M2(a)
Oneway cycle lane right only.svg
Neuss Bergheimerstr PICT8477.JPG
Way A.png
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 left only.svg
Way A.png
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 opposite lane left.svg
Cycle contraflow Caen c.jpg
Way A.png
Oneway cycle lane on opposite way of the oneway road.

Way A : highway=* + oneway=yes + cycleway:left=lane

M3b
Oneway cycle opposite lane right.svg
Way A.png
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
Separate car lanes cycle lanes left right.svg
Way A.png
Oneway cycle lane on right side of separated oneway roads.

Way A : highway=* + segregated=yes + cycleway=lane

(or as twice M2(a). See also the wiki Bicycle)

M5
Separate car lanes cycle lanes right only.svg
Way A.png
Oneway cycle lane on right side of a separated oneway road.

Way A : highway=* + segregated=yes + cycleway:right=lane

(or as M2(a) + highway=* + oneway=yes. See also the wiki Bicycle)

Cycle tracks

Road (UK) or path (USA, Canada) dedicated to cyclists on separate right of way.

Ref Context Photo OSM Description
T1
Cycle tracks left right.svg
Copenhagen Style Bike Lane.jpg
Way A.png
Cycle tracks on left and right sides of the road.

Way A : highway=* + cycleway=track

(or with three ways. See also the wiki Bicycle)

T2
Cycle tracks both right.svg
Cycle route marking Le Havre.jpg
Way A.png
Bidirectional cycle track right side of the road.

Way A : highway=* + cycleway:right=track + cycleway:oneway=no

(or with two ways. See also the wiki Bicycle)

T3
Cycle tracks cars-one-way cycle-two-way right.svg
Way A.png
Bidirectional cycle track right side of the one way road.

Way A : highway=* + oneway=yes + cycleway:right=track + cycleway:oneway=no

(or with two ways.
Way A : highway=* + oneway=yes
Way B : highway=cycleway
)

Miscellaneous

Ref Context Photo OSM Description
S1
Oneway cycle opposite nolane left.svg
Way A.png
Cycling opposite to the oneway car traffic without dedicated lane/track (in some countries only).

Way A : highway=* + oneway=yes + bicycle=opposite

S2
Cycle track left lane right.svg
Way A.png
Cycle track on left side and cycle lane on right side of the road.

Way A : highway=* + cycleway:left=track + cycleway:right=lane

S3
Cycle tracks sidewalks left right.svg
Way A.png
If sidewalks are considered as implied and simplicity kept

Way A : highway=* + cycleway=lane + footway=lane + footway:place=inside

S4
Cycle tracks left right footways.svg
Way A.png
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 track left lane right bus right.png
Way A.png
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 left right bus right.png
Way A.png
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 lanes left shared bus right.png
Way A.png
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 bus right.png
Way A.png
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 bus right.png
Way A.png
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

or

Way A : highway=* + lanes=2 + right:2:access=2 + right:2:psv=yes/designated + left:2:bicycle=yes/designated

B6
Oneway opposite shared bus left.png
2010-01-02 15.19.16.jpg
Way A.png
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

  1. any type of motor car roads in the class "highway" like primary/secondary/tertiary/unclassified/residential/etc.