Donate using PayPal

Journey planner help

Routing Engine factors

When searching for a route the CycleStreets journey planning engine tries to find the smallest total score from the practical ways of getting from the start to the finish.

These factors are currently included:

  • Length of the streets
  • The riding surface quality and environment, which indicates the cycling speed and quietness
  • Delays caused by traffic signals at crossings or junctions
  • Delays (or savings) caused by riding up or down a hill

We are working to take into account these additional factors (to be implemented in priority order below):

  • Delays caused by slowing down or stopping to make a turn when passing, crossing or turning at a junction.
  • Speed limits
  • Surface type (e.g. cobbles)
  • Unlit paths
  • Width of obstructions
  • Collision data (potentially - under-reporting of data may mean this is not sensible to include)

Obeying rules

CycleStreets strives to give only legally allowed routes. Our data comes from OpenStreetMap (OSM), so if there is an error we usually have to pass that on to them. When the error is fixed it will then make its way into CycleStreets after the next import cycle.

Currently CycleStreets obeys these rules

Traffic signals
Introduces an average delay.
One-way streets
It won't usually suggest walking the wrong way down a one way street, unless it is safe to walk in the road.
No cycling
Where walking with your bike is permitted and practical this is suggested. This can happen for instance in a so-called Pedestrian Zone.
Private access
OSM has many options for tagging ways as private. We interpret these as best we can.

CycleStreets has plans to obey these rules

Banned turns (e.g. No Right Turn)
Last time we checked (Nov 2009) there were not very many junctions in OSM that had the turn bans marked. Its chicken and egg - and we realise this information is fundamental to the quality of the routing and so it is a priority. See http://wiki.openstreetmap.org/wiki/Relation:restriction.
Intermittent prohibitions
E.g. no cycling between 10am and 4pm.

Incorporating these is a priority for us to come out of the beta testing phase.

We also plan to take account of other attributes - see notes above.

Blue 'Cyclists Dismount' signs are advisory. Cyclestreets will sometimes suggest a dismount, but it depends on how the ways are tagged in OSM.

Hills

The notes in these sections explain some of the work CycleStreets is doing to find better routes in hilly terrain.

Elevation

The starting point for finding cycling routes in hilly terrain is having some good elevation data. We can't get that from OpenStreetMap, so we're using NASA satellite data, called SRTM. This comes from US government funding, it is therefore public domain. You can read more about SRTM at http://en.wikipedia.org/wiki/Shuttle_Radar_Topography_Mission.

Effectively it provides us with a set of raster files that specify the height above sea level for every lat-long point all around the world. (We obviously have only downloaded the tiles for the UK area only though.)

Its resolution is about 90m, i.e. there is a height every 90m apart on the ground. This means that if there was a steep but small hill between two points that are 90m apart, it would not necessarily show up. However, in practice it's good enough. There is a new dataset called ASTER, which replaces SRTM, which we can move to in future, but there are few good tools for reading that at present. But I think 90m resolution is good enough anyway.

Incidentally, SRTM is the same data that is used to create the background map tiles for the Open Cycle Map, and which CycleStreets uses as its default background map.

We use an algorithm to read the SRTM files and provides an interpolation function that can answer the question: What is the height at this lat-long point?

During an import from OpenStreetMap, the elevation of each of the 8 million nodes on the cyclable network of the UK is queried in this way. That data provides the information that is used to create the elevation profile on each route.

Naismith

To take account of the delay due to going up a hill, and the time saving coming down again, CycleStreets uses a cycling version of the Naismith effect. Naismith was a hiker who devised a rule of thumb that helped estimate how much longer it would take to follow a route that involved a climb.

In the cycling version of the rule there is a cost of six seconds per metre climbed, but a saving of 1.8 seconds per metre descended.

A striking example of the difference this makes to the routing can be seen by comparing the fastest routes on these two examples:

Journey #80587 before Naismith
Journey #84129 after Naismith

Of the three route types currently available, the Fastest is most directly affected by Naismith. If there are two equally long routes over the same road types, the one with the least rise and fall will win. So it tends to favour smoother routes.

In order to make the Quietest routes sensitive to hills the time change is converted into an equivalent busyness and added in to the length of each section.

Elevation Profiles

The way the elevation profiles choose the vertical scale is as follows:

  • Uses imperial units - unless the signed in user has changed to metric.
  • Assumes that the vertical height will move by a maximum of 300 feet, 100 m if using the metric system.
  • The vertical scale is chosen with a 300 ft range so that the route is centred in the middle.
  • The lowest possible limit is about -30 feet, so routes in Cambridge always appear to be near the bottom of the range.

For all of the above cases the ground colour is shown as a light green.

  • If the vertical movement of the route is more than 300 ft, 100 m then the axis is scaled to fit.
  • In that case a darker green is chosen as the 'ground' colour.

We welcome your feedback, especially to report bugs or give us route feedback.

My comments relate to: *






Your comments: *
URL of page: * https://cyclestreets.net/journey/help/routing/
How did you find out about CycleStreets?:
Your name:
Our ref: Please leave blank - anti-spam measure

* Items marked with an asterisk [*] are required fields and must be fully completed.