Project-OSRM / osrm-backend

Open Source Routing Machine - C++ backend
http://map.project-osrm.org
BSD 2-Clause "Simplified" License
6.4k stars 3.39k forks source link

wrong name when way & area share nodes #610

Open emiltin opened 11 years ago

emiltin commented 11 years ago

in this example, a street "Hørsholmsgade" share some nodes with a pedestrian area:

http://www.ibikecph.dk/#!/x5nq4.7gumq/x5oc1.7gua7

Routing along the way you get:

start on Hørsholmsgade Continue on pedestrian Continue on Hørsholmsgade

So somehow it seems osrm chooses the pedestrian area over the street, and thus doesn't have any street name

emiltin commented 11 years ago

pushed a test that shows the problem, which occurs when the way and the area have the same type. perhaps a workaround is to downgrade ways/areas without a name a little bit?

emiltin commented 11 years ago

however, i still don't understand the example i posted, because the way has highway=residential, and the area has highway=pedestrian.

shouldn't osrm pick the way since it's faster?

TheMarex commented 9 years ago

@emiltin This should be fixed as OSRM ignores areas now, right?

emiltin commented 9 years ago

i hope osrm doen't ignore areas with highway=*

TheMarex commented 9 years ago

You are right, we only do this in the car profile.

systemed commented 9 years ago

I wonder if #1463 might be the same issue as this.

TheMarex commented 9 years ago

@systemed that seems more like a connectivity error caused by filtering out the wrong streets.

This bug here is basically caused by the fact that OSRM only allows for one edge between nodes. So if two ways overlap, the one with the smaller travel time gets chosen (including the name etc). However that part of the code was buggy and is currently addressed in #1450.

@emiltin The problem with allowing areas is that it will route on the area boundary. So in a lot of pedestrian areas that will lead to very strange results. There is no easy way to fix this. Routing across an areas is just too different. That is why you should always include a way inside the area that can be used for routing. Where do you see a problem with disabling areas for the bike and foot profile as well?

TheMarex commented 9 years ago

Never mind, constructing a visibility graph is a lot easier than I thought. Routing over areas seems doable. Tracking here https://github.com/Project-OSRM/osrm-backend/issues/64

emiltin commented 9 years ago

sounds good with routing on areas. some profiles like bike and foot requires areas, and currently this means following the edge of the square, which is inelegant, but better than nothing.

the problem here is that sometimes osm contains ways along the edge of areas, and then osrm routes on the edge of the area, rather than the way, resulting in confusing instructions.