How do I route around modal filters / LTN's in London, UK?

Hi all,

I am building a mapping app for car drivers in London, England, but I have run into some problems with Open Street Maps routing– namely, I have been routed through several modal filters at intersections (an exit of which prohibit cars without a certain neighborhood parking permit), or routed in directions only buses can go, or asked to turn right at intersections where right turns are explicitly prohibited.

Is there a setting i need to to configure, or is there another mapping application or plug-in I should be building on top of, which is able to give followable routes ?

Thanks 1

The above intersection shows new signage as part of a Low Traffic Neighborhood initiative. Before, it looked like this : Google Maps
Details of this particular LTN :Trial to make Wormholt safer and quieter | London Borough of Hammersmith & Fulham

I was also routed (as a car) down this bus road: Google Maps

1 Like

The roads behind these signs need to get some tags from the Access hierarchy: Key:access - OpenStreetMap Wiki

Something like motor_vehicle=private psv=yes would be my first guess, but ask people from the Communities > United Kingdom what tags they normally use for this.

1 Like

taxi=yes, not psv=yes

Access tags in the UK permitting PSVs are usually wrong, based on the flawed assumption that it’s shorthand for taxi=yes + bus=yes . This may be true in other places, but doesn’t work with the UK definition of a PSV.

You might see non-standard signs prohibiting all PSVs, which are usually based on the “vehicles prohibited” sign with the text “No public service vehicles” in place of a pictogram.

1 Like

topic moved to UK-forum

2 Likes

Could you clarify what you’re using for routing? Is it a publicly accessible routing server, or your own code, or…?

Hi- The backend uses OSMnx to find the “nearest nodes” on the road graph for the "start” and “destination” pointsboth your start and end points.

Then i call NetworkX’s shortest_path function.

What’s the best practice for routing in London ?

thanks !

Ok. OSMnx and networkX are absolutely not my specialist subject, but my guess is that they are not as sophisticated as a fully-fledged routing engine at parsing OSM’s tags which describe the access possibilities for any given way.

I’d suggest you start by trying to plot the same routes on the web interface on osm.org and see if it gets them “right”. osm.org provides an interface to the three most common routing engines (OSRM, Graphhopper, Valhalla) and all of these will parse OSM tags correctly.

If it’s right on osm.org, but wrong with your code, that suggests the map data is correct and it’s your code (i.e. OSMnx/networkX) which is lacking. On the other hand, if it’s wrong on osm.org, that suggests the map data is wrong.

Generally, for production use, most people will use a high-performance routing engine with proper tag parsing like the three mentioned above, rather than something like networkX which is written in a scripting language.

2 Likes

How very cool to see all the notes.

I think OSM tags are missing for these roads

These camera-enforced rules / signs act as modal filters, but they do allow resident permit holders (or borough residents, i think) to pass through.

Does OSM have a tag for permit-only, which lets you specify a specific permit that DOES let you pass ?

The routing still isn’t working : OpenStreetMap

should not route from Old Oak Rd to Steventon Rd (mid way up west side), but rather enter the LTN from Uxbridge Rd to the south.
see here :

https://www.lbhf.gov.uk/news/2026/01/trial-make-wormholt-safer-and-quieter

Here is what it looks like when you enter the neighborhood from Uxbridge road (Stevendon is a one-way east-bound entrance):

And if you try to exit via bloemfontein rd, you have this camera to contend with… you can’t EXIT without a registered parking permit either .

so the cameras block all non-permited cars / motorcycles in both directions.

driving eastbound onto Bloemfontein Rd:

It looks like a section of the east end of Bryony Road already has a motor_vehicle=permit tag on it. Would it be sufficient to split the other affected roads in a similar way and use that tagging?

AFAIK we don’t have any tags for some sort of permit ref to record exactly which permits are permissible. It would be difficult to implement unless local governments had already agreed to a unified system for recording them. I don’t even recall such a thing in the description of the new digital TROs they’re hoping to introduce but I could be wrong there.[1]


  1. Edit: a quick search of the Tour of the Data Model suggests that schemeIdentifier and permitIdentifierare both optional and seem to be free text so even if this does happen we might be in the same situation we are with PROW refs where it’s all a little vague. Obviously I haven’t just read that entire document in the last few minutes so I might have the wrong end of the stick. ↩︎

1 Like

Yes, that would be perfect.

How does it work ? should i suggest that, and then an administrator makes the edit ?

or do i make the edit, and then they approve it ?

thanks !

No, anyone with an account can make an edit and it goes live in the database immediately (although the services using OSM data usually only update periodically). If you would like someone to review your edit there’s generally a tickbox for that in the editing software, but this is just a flag for any other mappers who might be interested and not a guarantee it will get looked at.

In this case you may need to add nodes to the ways you would like to split to add the filter and then split them and add the tag only to the relevant bit. I can’t remember how much of a built in tutorial there is in the in browser iD editor these days but there are also resources like LearnOSM if you need a more detailed tutorial (or you can ask here if something doesn’t make sense).

3 Likes