London cycle route preferences realigned with TfL guidance
Signed London routes are now treated according to Transport for London’s own guidance on what each is for. Cycleways and Superhighways are preferred over the streets beside them; Quietways and local network routes are treated as ordinary streets, because signage alone does not make a road calmer. This replaces a set of route-by-route adjustments made over the preceding months.Roadworks steer routes without forcing long detours
Streets with active works are still avoided, but less emphatically. Riders were being sent noticeably out of their way around works that were passable.Banned turns read correctly where cycleways cross junctions
A no-turn restriction is now set aside only where both approaches are on the same cycleway. Routes stop suggesting turns that are signed against at junctions where a cycleway meets a road.Walking directions follow pedestrian routes
Walking legs are now planned over footways, paths and crossings rather than over the cycling network. Where a street has no separately mapped pavement the carriageway is still available, so walking directions stay connected everywhere. Cycling turn restrictions no longer apply to walking legs, which is what previously produced the odd walking detour.Routes prefer to carry straight on through junctions
Where a route can continue straight rather than turn, it now does. This trims the zig-zagging through residential grids that made some quiet routes tiring to follow, and it only applies mid-run, so junctions where straight on is not really an option are unaffected.Rough and unpaved surfaces are avoided
Where OpenStreetMap records a street or path as cobbled, gravel, dirt or otherwise uneven, routes now steer around it. Comfort and safety are treated separately: a rough street is avoided, but it is not reported as dangerous.One-off closures are avoided on the dates they apply
Road closures with a fixed start and end date, such as marathons, festivals and multi-week works, are now avoided for departures inside that window and ignored outside it. Passdeparture_time to route for a specific day.Nearby closures are surfaced on multi-modal options
Each option in aPOST /multi-modal/ response can now carry a disruptions array listing temporary road disruptions near its cycling legs, either active at the departure time or starting within the hour. Use it to warn a rider about works on the route you are about to show them.Route to a place to park the bike
POST /multi-modal/ accepts parking_type, which ends the cycling leg at a real parking spot near the destination and walks the rider the rest of the way. Set it to regular for ordinary racks or ebike for designated rental e-bike bays. The chosen spot comes back as parking.Street surface is read from the map
Surface information published in OpenStreetMap now flows through to routing, which is what makes surface-aware routes possible. Values are consolidated to a simple smooth-or-uneven distinction, because the raw tagging is too inconsistent between contributors to use directly.Streets that close on a schedule are avoided while they are closed
Roads that shut on a recurring weekly pattern, such as street markets and regular events, are now avoided for departures inside those hours and used normally the rest of the week. Before this, a route either always avoided the street or never did.London street markets mapped
The recurring closures for London’s street markets are now recorded with their real trading hours, so a Saturday morning route around Broadway Market differs from a Tuesday afternoon one.Explain a route in one sentence
POST /explain-supersafe/ compares the SuperSafe route against the most direct route and returns a single sentence describing the difference, for captioning a route in your own interface. It accepts nighttime and departure_time so the sentence describes the same pair of routes you are showing.Cycleways on merged streets keep the right side of the road
Where a long street is recorded in several pieces, or is signed against the direction it was drawn, the cycleway alongside it now stays on the correct side. Routes stop putting riders on a lane running the other way.The road network is checked for connectivity
Stretches of road that are not actually reachable from the rest of the city are now removed before routing. These were the source of routes that started or ended somewhere a rider could not get to.Rebuilt how map data is read
The step that turns OpenStreetMap data into our road network was rewritten. Junctions, one-way rules and street naming are all more faithful to the source data, and the network takes considerably less time to rebuild, which is what made the nightly refresh below practical.Long trips route reliably end to end
The area searched for a route now scales with how far apart the two points are. Long cross-city trips that previously failed to return a route now succeed, and short trips are unaffected.Time-limited turn signs are respected
Junctions where a turn is banned only at certain times, such as peak-hours-only restrictions, are now read from the map and honoured for the departure time you route for.One-way rules that apply to bikes specifically
Where a street is one-way for bicycles, or explicitly two-way for bicycles on an otherwise one-way street, routing follows that rather than the general one-way rule. Contraflow lanes are usable in the direction they exist.Roundabout instructions say which exit to take
Steps through a roundabout now read “take the 2nd exit” rather than a generic turn, in both the written instruction and the voice cue, with exits counted from the entry point.Banner instructions preview the following turn
bannerInstructions entries now carry a sub component alongside primary, so an interface can show the turn after next while the rider is still approaching the current one. Useful where two maneuvers arrive close together.Route for a chosen departure time
POST /directions/ and POST /multi-modal/ accept departure_time as a wall-clock time in the route city’s timezone. It determines whether night routing applies and which temporary closures are in force, and it comes back on metadata so you can confirm what was routed.Each step reports whether it is lit
Steps carry alit flag, so you can show a rider how much of a route runs on lit streets. It reflects street lighting recorded in OpenStreetMap, which is approximate and better in some boroughs than others.Routes prefer lit streets after dark
Evening and overnight trips now favour streets we know are lit. Night applies from half an hour after sunset to half an hour before sunrise, worked out for the route’s own city, so it tracks the seasons rather than a fixed clock time.metadata.nighttime tells you which way a route was planned.Identical routes are returned once
Where the safest route and the most direct route are the same road, only one option comes back rather than two identical ones. Riders were being asked to choose between two routes that were indistinguishable.Map data refreshes nightly
Every supported city now rebuilds from the latest OpenStreetMap data each night. A new cycle lane, a closed street or a corrected one-way now reaches routing within a day of being mapped, rather than whenever we next rebuilt by hand.Safe and direct options in one multi-modal request
POST /multi-modal/ now returns both the SuperSafe and the most direct variant of each travel option in a single response, instead of needing two calls to compare them.Routes obey banned turns
Turn restrictions recorded in OpenStreetMap, including no-left-turn and no-U-turn signs, are now enforced during route planning rather than checked afterwards. Routes also accept an optional starting direction, so a rider already moving is not told to turn around.The first instruction points the way you are facing
Where a route starts partway along a street, the opening step now reports the correct departure direction. It could previously be reported as the opposite direction, which sent riders the wrong way out of the gate.Simpler bearings on maneuvers
Maneuver bearings are reported as single numbers in degrees rather than as a structure, matching the shape most navigation clients already expect.Separately mapped cycleways matched to their streets
Cycleways drawn as their own line alongside a road, which is how most protected lanes are mapped, are now matched to the street they run beside. Turn-by-turn steps name the street rather than an unnamed parallel path, and a lane on one side of a road only helps riders travelling that way.Turn angles match the maneuver
Each step reports the angle a rider actually turns through at the junction, rather than an angle taken from the overall direction of the streets involved. Instructions like “sharp left” and “slight right” now match what the rider sees.API keys required
Every endpoint now requires an API key in theAuthorization header. A valid user session is also accepted and grants higher rate limits. See Authentication.Road preferences tunable per city
How strongly each kind of road is preferred or avoided is now set per city and can be changed without rebuilding anything. A busy arterial in London and one in Los Angeles no longer have to be treated identically, and a correction reaches riders the same day.Bike-share trips stay inside the permitted riding area
Where an operator publishes zones its bikes may not be ridden through, routes now stay out of them, so a bike-share option is one the rider can actually complete.Pricing and deep links on bike-share options
Bike-share options carry the operator’s published pricing plan and a rental link, so an interface can show the price of a trip and hand the rider straight to the operator’s app.Signed cycle routes preferred over the streets beside them
Where a signed cycle route runs parallel to a road, routing now prefers the signed route. This is what makes a SuperSafe route follow the network a city has actually built.Steps name the signed cycle route
Each step carries the signed cycle routes it belongs to, such asC13 or CS7, so instructions can name the route a rider is following rather than only the street.