Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incorrect matching with hov-only roads #3587

Closed
stl-mikeyalexander opened this issue Jan 19, 2017 · 8 comments
Closed

Incorrect matching with hov-only roads #3587

stl-mikeyalexander opened this issue Jan 19, 2017 · 8 comments

Comments

@stl-mikeyalexander
Copy link

hov_trip_call.zip

Attached a call which seems to give the incorrect results. When the vehicle moves to the HOV lane, the match fails.

Maps were prepared with (uncompressed output is also attached)
ignore_hov_ways = false

@emiltin
Copy link
Contributor

emiltin commented Jan 19, 2017

I verified that hov ways are not considered (ie they are accessible) when ignore_hov_ways = false, so the profile seems to be behave correctly.

(But the naming is a bit ambiguous, use_hov_lanes might be better.)

@stl-mikeyalexander
Copy link
Author

I can also confirm that hov ways are being treated correctly in other areas, but the I-95 hov way is never getting used by the match call as far as I can tell.

@stl-mikeyalexander
Copy link
Author

Looking at a few of the road segments on I-95.
One segment was missing the access flag (can't find that segment now, but did see it when I first was investigating).
All of the I-95 segments are listed as oneway:yes

@danpat
Copy link
Member

danpat commented Jan 19, 2017

You can see what's available in the routing graph by looking at the debug map:

http://map.project-osrm.org/debug/#15.79/38.9791/-76.3235

any edge that is snap-able is visible on that map as a coloured line. The background layer (in grey) is the full road network from OSM. Any place where you can see a grey line that looks like a road and isn't covered by a coloured line is a road edge that OSRM doesn't know about. HOV-only roads fall into this class, like this:

http://map.project-osrm.org/debug/#16.53/38.52032/-77.37062

at this location, the central HOV-only lanes are not routable on the OSRM demo server.

@stl-mikeyalexander you can grab yourself a copy of the https://github.com/Project-OSRM/osrm-frontend project and set up your own local map viewer to dig into this.

@stl-mikeyalexander
Copy link
Author

Great tool. Thanks. So that confirms that the I-95 HOV lanes are not in the database and so the match call is doing the correct thing.

What is wrong with these segments that osrm-backend doesn't process them when building the map?
http://www.openstreetmap.org/way/141387703#map=17/38.57284/-77.33047

@danpat
Copy link
Member

danpat commented Jan 19, 2017

It's the hov=designated tag. This means those ways are HOV only, non-HOV cars cannot drive on them.

Looking at the logic here is making my brain hurt:

https://github.com/Project-OSRM/osrm-backend/blob/master/profiles/car.lua#L306

It looks like ignore_hov_ways=false will skip HOV checks and include them in the network. ignore_hov_ways=true will look at the hov tag, and if it's designated, we do not route on it.

@daniel-j-h did we accidentally flip the logic here? The true/false values seem backwards and not how I remember it being. We're definitely excluding hov=designated ways on the demoserver, but ignore_hov_ways=true in the profiles/car.lua on master. Am I crazy, or is the wording of ignore_hov_ways backwards?

@emiltin
Copy link
Contributor

emiltin commented Jan 20, 2017

yeah as i mentioned above, the naming seems ambiguous, "route_on_hov_lanes" might be better. but the functionality seems correct.

@danpat
Copy link
Member

danpat commented Feb 16, 2017

We've re-worded the HOV avoidance flags in car.lua and it's a lot easier to follow. We're also defaulting to allowing HOV access now, but adding a routing penalty that means we'll not route through HOV ways, but will route off or onto them if a waypoint snaps to a HOV-only road (including during map-matching).

ref: #3721

@danpat danpat closed this as completed Feb 16, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants