Tallinna Rattateed

From OpenStreetMap Wiki
Jump to navigation Jump to search

This is a community project on mapping physical properties of every single bicycle track and lane in Tallinn.

As of 2026, we still don't know how many bicycle tracks exactly is in Tallinn. To better plan the bicycle strategy, we need to know exactly what has been built, and where are gaps in the network. For this, we use OpenStreetMap. It makes sense, because OSM data is used for assessing the bicycle road network by third-parties, e.g. ECF. We use common tags in accordance with Bicycles, slightly adjusted to avoid collisions with regular drive-by mapping.

Mapping Cycleways

Infrastructure type:

  • bicycle=designated should be used on tracks (footway, path) that are segregated or designated with traffic signs for bicycles, including or not including pedestrians. Use the designated value only when there is a sign. Otherwise choose, for example, less precise bicycle=yes.
  • highway=cycleway with foot=* absent or foot=discouraged only for dedicated bicycle tracks marked with sign. May also be used on segregated shared paths (with foot=designated).
  • cycleway:left/right/both=* for bicycle lanes on streets. The suffix is mandatory. both is discouraged though, it makes maintenance hard. All cycleway-related tags should then be prefixed by this key, e.g. cycleway:left:surface:colour=*.
  • There are no cycle streets in Estonian traffic code, hence no tags for those.

Physical property tags:

  1. segregated=yes/no is mandatory on tracks with foot access.
  2. cycleway:width=* -- used instead of width=* at all times to separate it from the total track width, e.g. when there are bollards and street lamps in the middle of a track. Should be measured as a minimum width through a segment.
    • Measuring by the narrowest spot: signposts, sudden holes, walls, bus stop shelters. The value is in meters with one decimal digit, e.g. 3.9.
    • Obviously when the cycleway is segregated, this is only the width of the cycleway.
    • If an editor complains, consider adding a cycleway=shared to please it.
  3. surface=* is mandatory (commonly asphalt or paving_stones).
  4. surface:colour=* mandatory on lanes and segregated tracks: none (unpainted surface), red, or blue.
  5. smoothness:ecs=* is recommended, although might be tricky to collect (see below).
  6. incline=N% is recommended when the incline is 3% or more.

Take special care when mapping cycleways over highway crossings: sometimes they formally stop before and continue after. We also have railway crossings where bicycles are explicitly forbidden.

Mandatory tags for streets with bicycle lanes:

When confirming something after a survey, please use check_date=*. On a street you can use cycleway:check_date=* (it takes priority).

Checklists

Shared track Segregated track Footway Lane
bicycle=designated

foot=designated
highway=cycleway/footway/path
segregated=no
cycleway:width=*
surface=*
smoothness:ecs=*
check_date=*

bicycle=designated

foot=designated
highway=cycleway/path
segregated=yes
cycleway:separation=no/lowered_kerb/...
cycleway:width=*
cycleway:surface=*
cycleway:smoothness:ecs=*
check_date=*

bicycle=yes if it's a road commonly cycled

foot=designated
highway=footway/path

Instead of right you can use left or both

cycleway:right=lane/shared_lane
cycleway:right:width=*
cycleway:right:separation=*
cycleway:right:surface:colour=*
cycleway:check_date=*

Smoothness

We are using a separate classification and method for smoothness, so the common tag smoothness=* does not apply. Instead, we're spreading a sub-key with the definition from the European Certification Standard:

Value ECS quality Rideable with Example surfaces Sample photo
perfect perfectly rideable road, folding or children’s bike in every weather condition; roller blade; skateboard smooth asphalt or concrete with low rolling resistance
good well rideable trekking bike in every weather condition raw granulation or slightly bumpy asphalt; well-laid paving blocks or slabs; well-maintained and undamaged stabilised gravel
moderate moderately rideable rugged touring bike in most weather conditions patched, uneven asphalt with occasional potholes; uneven paving blocks or slabs; smooth gravel, neither sandy nor muddy
bad badly rideable mountain bike and comparable multiple potholes and puddles, large cracks or longitudinal rifts; missing blocks, broken slabs, cobblestones; loose stones or tree roots; somewhat sandy or muddy gravel roads

Note that as for the width, we are choosing the worst option for a stretch of a cycleway. That includes curbs and manholes. If there is even a single manhole, the surface is good at best.

If there is one or more curbs all lower than 2 cm, good fits. Otherwise it's moderate. Even if there is a single curb over 2 cm.

One way

By default, all tracks are bi-directional, while all lanes are one-way.

To make a track (or a bicycle part of a segregated shared track) oneway, add a oneway=yes tag. Alternatively use cycleway:oneway=*.

To make a lane bi-directional, add cycleway:left/right:oneway=no. A tag oneway:bicycle=no also works, although it applies to everything.

Crossings

We often mark crossings with footway=crossing or cycleway=crossing even. The mapper qqqqq+ compiled a very good rule of thumb to decide whether a crossing should only have footway-related tags, or a designated cycleway too:

First of all, it’s allowed to cross crossings on a bicycle [LS § 32¹. (3)]. This means that if crossing is mapped as a way and it’s is connecting paths where cycling is allowed, then for routing it’s important that the crossing has bicycle=yes or bicycle=designated tags.
How to choose between them? While there is no real difference in the law, I’d use the road markings to decide this: regular zebra (945a-b) is a yes and 946a-d, 948 are bicycle=designated. Sign 557 can also be used to decide if a crossing is designated. Though it’s sometimes incorrectly used to warn drivers of a non-one-way bicycle traffic on an otherwise one-way street.

An explicit cycleway crossing should also be accompanied by cycleway:width=* and smoothness:ecs=*, accounting for curbs.

For a simpler notation, we also use kerb=* on highway=crossing nodes: common values are lowered for under 2-3 cm, raised for noticeable kerbs, and flush or no for kerbs under 1 cm.

Bicycle designation (which is explained in the quote above) is marked with bicycle=designated on the node, as opposed to yes for when a cycleway passes through it, but it looks like a regular pedestrian crossing).

No cycleway

It's important to know where there is no cycleway or a lane: when it should be mapped as a regular footway. The rule of thumb is:

  • No sign with a bicycle on it in case of tracks. Those signs should be repeated at every street intersection (not local service roads though). They should be present at both ends: sometimes we have only one, so you don't know you're on a "cycleway" until you ride the entire length. Those do not count. Of course this would be subjective: a gap of a hundred meters can be closed.
  • No markings related to a cycle lane. There are two tells of a cycle lane: colour and a bicycle symbol painted. Sometimes cycle lanes lose their paint for 100-300 meters, and in this case it's okay to imply it is there. Sometimes the cycle lane turns to the sidewalk and disappears there: check for the physical signs to map it then.
  • For a cycle track to be marked segregated, it needs to have a physical separator, or differ in surface or colour. Just white painted lines are not enough! Ideally should also be signposted with but what do you expect from our officials.

Presence on the official cycleway map does not mean the cycleway is there. Only what is on the ground matters. If you are eager to mark something for bicycles, use bicycle=yes instead of bicycle=designated, and do not use highway=cycleway in this case.

Examples

Photo Tags Comment
highway=footway

bicycle=designated
segregated=no
surface=asphalt
smoothness=intermediate (curbs count!)
cycleway:width=1.2

Full width should be measured from the curb to the dirt, but the cycleway width is where a bicycle can move.
highway=footway

bicycle=designated
segregated=no
surface=asphalt
smoothness=excellent
cycleway:width=2.8

Pay close attention to those signs. Also, this is the biggest one I have seen.
cycleway:right=lane

cycleway:right:width=0.9
cycleway:right:separation=no
cycleway:right:surface:colour=none

Technically this part looks like a shoulder, but we afford some leeway to our clueless officials. The red paint ran out ~200 meters back.
highway=footway

bicycle=designated
segregated=yes
surface=paving_stones
smoothness=good
cycleway:separation=none
cycleway:width=?
cycleway:surface:colour=red

Surface, physical separator, or just colour: three things that mark a segregated cycleway.
Before:

cycleway:right=lane
cycleway:right:width=?
cycleway:right:separation=no
cycleway:right:surface:colour=red

After:
highway=footway
bicycle=designated
segregated=yes
surface=asphalt
smoothness=excellent
cycleway:separation=kerb (or none?)
cycleway:width=?
cycleway:surface:colour=red

Despite the general stupidity, the segregation from the sidewalk is done perfectly.

Estonian Mapping Practices

In this thread several mapping principles are outlines, some of which collide with that is proposed here. Those are obviously skewed towards fixing routing in software, over which we have no control. In a way, it's mapping for a renderer, but given it's supported by majority of mappers, we have to account for that.

Following that, we consider bicycle=yes to be a helper tag for routing software and not reflecting actual infrastructure. Any bicycle infra analysis should ignore it.

How to Collect Data

Install Every Door on your mobile phone. It has the fourth mode for notes, which looks like a pencil and a paper. It is super imprecise, but also does not affect OSM data, so you will use it to collect notes on cycleway infrastructure, to be mapped later on a desktop computer.

I use two drawing tools: purple "Cycleway" for lanes and shared/dedicated cycleway tracks, and red "Footway" for non-marked shared and dedicated pedestrian tracks. Basically I mark this way whether it's a signed, proper cycleway, or a footway that is also unofficially used by or intended to be used for cycling.

On top I drop short notes by dragging and dropping the blue (+) button onto the map (it's faster than tapping and choosing a location). Often the note is simple: one-letter type of the cycleway and a width. Sometimes it's longer:

  • Shared with a width, all standard: u 320 (from "ühendatud", 320 mm, rounded).
  • Shared with more details: u 220 plates bad (includes "surface=paving_stones" shortened to plates, and ECS smoothness=bad).
  • Segregated short: e 180/380 (from "eraldatud", sometimes "s" for "segregated"; 180 mm cycleway, 380 mm total).
  • Segregated with more details: s 150/290 1w kerb asf/pl (one-way, lowered kerb the default, asfalt for cycleway and paving_stones aks plates for footway).
  • Dedicated: c 250 2w red (from "cycleway", sometimes "d" for "dedicated"; 250 mm, two-way, red paint).
  • Lane: lb 140 (from "lane black", width 140 mm, not painted - colour is mandatory; lr for a red lane).
  • Crossings: two letters, first for designation (f/b) and second for kerb (f/n/l/r). E.g. fl for foot-lowered, bf for bicycle-flush, fr for foot-raised.

I upload regularly, and try to remember all the details in case I miss something in notes. As you can see on the first screenshot, sometimes I have to draw a lot, especially when the map hasn't been updated after a reconstruction.

You don't need to measure non-signposted footways, so sometimes confirming a bicycle road from the official map means riding along and watching for signs that are missing. Keep the result to memory, or better draw the "footway" red lines on the map.

How to Map in JOSM

Preparation

Go to Presets → Preferences and install the Tõelised rattateed preset. The right-click on the toolbar, open the configuration, and add the preset button. Now when you click on a highway segment, you can access the needed preset in two clicks instead of adding and editing tags one by one in the attributes panel.

Then I add three layers, top to bottom:

  • Downloaded data.
  • GeoScribbles.
  • Eesti Ortho WMS (set opacity to ~60%).

I also use two filters in the filtering panel:

  • highway | new (Hiding + Inverted).
  • highway=cycleway | bicycle=designated | "cycleway:left" | "cycleway:right" | "cycleway:both" (just Inverted).

The first is enabled at all times, and I turn on the second one to check for overlooked crossings and small segments. Basically the second filter reflects the "märgitud" layer from the interactive map.

I also keep the GeoScribbles map and this wiki page open in the browser, since it's easier to use than the layer in JOSM.

Mapping

Map as you have always mapped. Don't be shy to split highways at points where road properties change. Draw missing paths. Fix road alignment to orthophotos, given their extraordinary precision. Upload when you've finished mapping a small contained area.