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

Sometimes use only name or ref, not both #51

Closed
freenerd opened this issue Oct 21, 2016 · 5 comments
Closed

Sometimes use only name or ref, not both #51

freenerd opened this issue Oct 21, 2016 · 5 comments

Comments

@freenerd
Copy link
Member

There are cases where it would be better to ignore the name and only use the ref

screen shot 2016-10-20 at 19 00 43

http://map.project-osrm.org/?z=15&center=38.868532%2C-77.056947&loc=38.877670%2C-77.040553&loc=38.868248%2C-77.048450&hl=en&alt=0

There are cases where it would be better to ignore the ref and only use the name

screen shot 2016-10-20 at 19 02 17

http://map.project-osrm.org/?z=16&center=52.518304%2C13.445184&loc=52.517331%2C13.453681&loc=52.522501%2C13.450441&hl=en&alt=0

Doing this is a hard problem, since it requires local knowledge. I do not know how we'd solve this.

@1ec5
Copy link
Member

1ec5 commented Oct 21, 2016

There are multiple parts to this problem:

  • Following a route often means traversing a series of roads with different names. "Stay on" when continuing on the same road #41 would introduce more contextually appropriate phrasing such as “Keep right at the fork to stay on B 96a” in the event that the previous and current steps share the ref in common.
  • The George Mason Memorial Bridge example above is a special case in which “stay on” phrasing would leave us with a useless instruction: “Stay on I-395”. OSRM would ideally elide such instructions altogether.
  • In some jurisdictions, or for some route networks, or for some particular roads, the ref may be more important than the name or vice versa.

This last part is the most intractable, as it requires local knowledge. For example, in some jurisdictions, a freeway’s name may not even be posted prominently enough for use in navigation. The road would be solely identified by a route shield, optionally with destinations:

norwood-lateral

You might only see the name after driving on the road for several miles:

Or only after stopping at a rest area or roadside attraction:

On the other hand, there are plenty of expressways and surface streets that are primarily identified by name, even if they have route designations:

lawrence-expressway

Lawrence Expy. (shown above) does have a few route shields posted, but a non-local would never be able to navigate using them:

g2

In OpenStreetMap, it’s fairly common to use tags such as official_name for road names that only appear in government documents, or for honorary names that appear alongside more common names in signage, as well as loc_name for road names that are only used by locals and never signposted. However, there’s no standard way to indicate that a name is in widespread use but not signposted consistently enough for navigation.

We could develop heuristics like preferring refs for motorways and names for everything else, but there are too many cases we’d get wrong. I think using contextual clues to omit a name or ref is probably the best way forward on this issue.

@bsudekum
Copy link

I think using contextual clues to omit a name or ref is probably the best way forward on this issue.

@1ec5 how can we begin to do this?

@1ec5
Copy link
Member

1ec5 commented Nov 12, 2016

I think using contextual clues to omit a name or ref is probably the best way forward on this issue.

@1ec5 how can we begin to do this?

#41 and Project-OSRM/osrm-backend#3281 are the next steps.

Beyond that:

We could develop heuristics like preferring refs for motorways and names for everything else

However, OSRM doesn't tell us the classification of each road. So we'd have to base this determination on either:

  • The speed limit (expected distance divided by expected duration). But this won't work when ETAs account for traffic.
  • The network code in the ref, but this is specific to OSM and also won't scale. An application could decide to treat ref: I * as motorway, but that isn't for osrm-text-instructions to decide.

@freenerd
Copy link
Member Author

I believe #30 could be a cheap next step to mitigate some of these problems. It would check all ref and name of the steps of the route and decide for each one which to use, based on the weight that they get.

@willwhite
Copy link
Contributor

Tracking on #133 now.

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

4 participants