I work on the Open Source Routing Machine and wanted to ask if it's possible to add a quest for routing related tags. We support a variety of tags (see taginfo.json) so I'd like to discuss with you if we could add a routing task and further more which tags make sense to prioritize.
It makes sense to start with high-value tags many routing engines support (for example maxspeed tags) and incrementally add quests for other routing related tags (such as surface, track type and lane tags - and others, see taginfo).
What's your take on this? How can I help?
That's on my list. At least maxspeed, track type, lanes and turn lanes. surface is actually already implemented. I will release a new beta the coming days where it is included.
Perhaps I should make a brainstorming page in the wiki about what new quests could be possible, how the form would look and make sense. Perhaps you would like to do that from the perspective of what makes sense for the routing machine?
Some quests are more difficult to implement (that is: to detect) than others, i.e. I have no idea yet about turn lanes. (The app can not cut ways and won't in the near future.)
Currently the quests are detected using a simple Overpass query, using a simplified query language. See for example here.
There is not much code in place to find anything beyond what is possible with these simple queries.
I've noticed that mappers tend to specialise. Cyclists for example are very interested in anything that affects them but not in mapping car parks.
Can we filter by the overpass query? ie a cyclist one, a hiking one, an urban one?
John
@westnordost thanks for the explanation - I only used simple Overpass queries so far, but it looks like it's quite powerful. Related: do you set a custom timeout for the Overpass queries?
I can give you some ideas what would be great for routing, but can't tell you if all of those are easily detectable via Overpass or if they can be wrapped into an easy to solve and understandable Quest:
Traffic signals, stop signs, priority road signs at intersections. It's probably country-specific but at least in Germany you expect routing related signs right after intersections. Maybe filtered by highway class.
Destination tags on ways splitting off at motorway junction nodes. The old exit_to tag used to be placed onto those nodes. It's now preferred to use the destination= tag on the way.
Turn restrictions. These are a must-have, but I don't know how to make a Quest out of them using simple Overpass queries, as it's more the absence of turn restrictions we're looking for.
Tunnel / bridges maxheight (width) restrictions. Important for specific vehicle types.
Duration tags for ferries. Without durations the routing engine has to guess.
Surface, tracktype, smoothness tags.
Street width and related number of lanes. In contract to turn lane tags (which we also support) these will mostly be used to calculate perceived turn angles and scale speeds.
Everything parking related: capacity, maxstay etc. This is not directly related to routing but but could be useful and easily detectable by checking for parking tags and making Quests for missing additional tags.
cc @themarex @emiltin
I set the timeout to 45 seconds (both OSM Api and Overpass Api). Do you recommend other values?
Thanks for all the input! It gets crowded in this issue tracker, I think I have to make a list apart to keep the overview of all the quest type suggestions, which are all very useful and most of them are implementable. Comments on that:
Tunnel / bridges maxheight (width) restrictions, Surface, tracktype, Everything parking related: capacity, maxstay,
On my list. Easy to do.
smoothness tags
Easy to detect, but the definition of smoothness is somewhat blurry. So it is difficult to ask/answer. Also, smoothness may change over time, so this is one of the quests that would need to be repeatedly asked over time (which I do not know how to implement yet, can I ask Overpass about "elements for which tag X that did not change for the last Y years? I do not know.)
Street width and related number of lanes
I plan to implement asking for lanes first, if the answer is "no visible lanes" or when it is a service road, but only then, I ask for its width.
Duration tags for ferries
Destination tags on ways splitting off at motorway junction nodes
This is one of the things (like long ferry routes) that could better and more effectively be done by armchair mappers.
Turn restrictions, turn lanes
This will be hard, because the app would need the ability to change element geometry (cutting). So I can tell you that this won't be added anytime soon. It's a one-man project after all.
I have done a lot of Destination-tagging lately. It's actually something that needs to be done on the ground, as you have to carefully copy the destinations from the road signs. This can by no means be (accurately) done by armchair-mapping. So I would appreciate a quest for destinations.
On smoothness however, I agree with @westnordost : It's very blurry and subjective; much more so than surface.
In my opinion destination with source Mapillary is much better done at home.
Stopping on a motorway to get the exact wording is not really a good idea :-)
Maybe it would be better to open separate issue for every possible quest?
That'd make sense
And close this one, as it stands now it is unfixable (there uus always possible to think about something routing-related).
And could we maybe open separate issues for each quest idea? Also for the ones, @westnordost already has in mind (& partially has icons for), so to track them properly, i.e. to allow people to rate them (:+1:), to allow linking from the wiki e.g. and to collect some ideas.
I've also done a lot of Destination mapping in the last time. Mapillary is a great help for it but for many many roads there are no Pictures available. Mapillary's data protection algorithm often smoothes signs so they are not readable anymore.
I would be happy to see Destination (and Destination:symbol) quests in street complete at junctions (not only motorway).
Mapillary's data protection algorithm often smoothes signs so they are not readable anymore.
You mean it blurs them. In that case, you can edit this blurs and after they are approved, you can see them.
FYI an one-way quest has been implemented in v6: https://github.com/westnordost/StreetComplete/issues/370
I think everything suggested here has either been implemented, or seperate tickets exists or it cannot be done.