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

Quest: add highway=crossing #398

Closed
krzyk opened this issue Jul 15, 2017 · 29 comments · Fixed by #2999
Closed

Quest: add highway=crossing #398

krzyk opened this issue Jul 15, 2017 · 29 comments · Fixed by #2999
Assignees
Labels
blocked blocked by another issue new quest accepted new quest proposal (if marked as blocked, it may require upstream work first)

Comments

@krzyk
Copy link
Contributor

krzyk commented Jul 15, 2017

#This is related to the other quest with crossing (#397) but this time we would look for intersections between a street (highway ~ primary|secondary|tertiary|residential|unclassified|road) and a footway that don't have a highway=crossing.

If such node doesn't have a highway=crossing, we add it, if the crossing is not possible we add crossing=no.

The question can be a simple yes/no, e.g.: Can pedestrians cross the street here?

I'm not sure how to built such query in current tag filters, a query from overpass-turbo:

[bbox:{{bbox}}];
way[highway]["highway"~"primary|secondary|tertiary|residential|unclassified|primary_link|secondary_link|tertiary_link|service"];node(w)->.n1;
way["highway"="footway"];node(w)->.n2;
node.n1.n2["highway"!="crossing"];
out meta;

EDIT: Removed road, added primary_link|secondary_link|tertiary_link|service

@matkoniecz
Copy link
Member

matkoniecz commented Jul 15, 2017

I would drop highway=road - it may be footway, highway=pedestrian or in extreme cases even not a road.

I would ask also for highway=primary_link, secondary_link, tertiary_link, service.

@matkoniecz
Copy link
Member

Also, I would ask about crosssings where second way is higway=path with foot=yes/designated.

@rindlerblabla
Copy link

When I look at the overpass link it seems that there will be a lot of negative results. Right now probably more than 90% are just connected ways, not crossings. Is it possible to somehow add that the second way (the footway) should continue on the other side on the crossing node?

@krzyk
Copy link
Contributor Author

krzyk commented Jul 15, 2017

@rindlerblabla I wonder, why would a footway end on a street? Is that normal way to show that it ends? Wouldn't a crossing=no be a good way to mark it in such case?

@rindlerblabla
Copy link

@krzyk Probably the street have pavements which are not drawn on OSM. Don't think they have foot=no.

@matkoniecz
Copy link
Member

I wonder, why would a footway end on a street? Is that normal way to show that it ends?

Also, sometimes road continues as footway (http://www.openstreetmap.org/?mlat=50.06349&mlon=19.92185#map=19/50.06349/19.92185 has cycleway, but that is solely matter of signs placed there)

http://www.openstreetmap.org/?mlat=50.06402&mlon=19.95813#map=19/50.06402/19.95813 has footway continuation

@krzyk
Copy link
Contributor Author

krzyk commented Jul 19, 2017

OK, so the above query will be just a beginning later on it needs to be postprocesed.

Selected node should:

  • have a previous and following node that belong to a way of type highway=primary|secondary|tertiary|residential|unclassified|primary_link|secondary_link|tertiary_link|service
  • has a previous and a following node that belongs to a way of type highway=footway

I think that covers it, question: is it possible with osmapi to retrieve other nodes on the way that are direct neighbors of given node? I think it should be possible, without it I think way direction wouldn't be possible.

But from a quick look I couldn't find something like that in
https://github.com/westnordost/osmapi so it might need extending to handle that.

@rindlerblabla
Copy link

And as @matkoniecz suggested for the second way add highway=path with foot=yes/designated. I would also add highway=cycleway with foot=yes/designated.

@westnordost
Copy link
Member

westnordost commented Aug 2, 2017

Oh, I completely missed reading this.

I'm not sure how to built such query in current tag filters, a query from overpass-turbo:

Not at all. The "tag filters" syntax is a simplified form of the overpass syntax, thus not having all the features. But no problem, one can simply use Overpass syntax directly, see i.e. AddRoadName.
By the way, the tag filters syntax can of course be extended as long as it does not complicate things and stays to be simple and easy to read.

look for intersections between a street (highway ~ primary|secondary|tertiary|residential|unclassified|road) and a footway that don't have a highway=crossing.

Cool, I didn't even know this was possible with Overpass. If this quest has been made, then a railway crossing (railway crosses road, railway crosses footway) quest can also be added, copying/inheriting from this one :-)
Synergies!

@rindlerblabla made an important note though. Specifically (if that isn't clear yet), there are two accepted ways to map sidewalks: As a separate way (usually if the way is really separate from the street but often also used when not) and as a property of the street. At points where the two tagging schemes meet, there are of course no crossings. Example: http://www.openstreetmap.org/node/1839120490

@westnordost westnordost added the new quest accepted new quest proposal (if marked as blocked, it may require upstream work first) label Aug 2, 2017
@krzyk
Copy link
Contributor Author

krzyk commented Aug 2, 2017

OK, so the list of issues that we have here are to find a way to exclude following:

  1. footways changing into sidewalks (highway=footway -> highway=(road for cars) + sidewalk=...)
  2. footways that don't cross the street (only one footway joins into street node)
  3. a street that ends and continues as a footway

I'll have to look into osmapi to see how to retrieve adjacent nodes along the way, solutions would be:

  • (for 2) at least 1 footway node before and 1 footway node after a node that is common for footway and street
  • (for 3) at least 1 street node before and 1 street node after a node that is common for footway and street

And add an exclusion if street way has a sidewalk tag (this would solve the 1 point).

@matkoniecz
Copy link
Member

According to what I know excluding case three "a street that ends and continues as a footway" is impossible - at least I spend significant time on attempt to craft overpass query that would do this and failed.

@westnordost westnordost added the help wanted help by contributors is appreciated; might be a good first contribution for first-timers label Sep 6, 2019
@xuiqzy
Copy link
Contributor

xuiqzy commented Sep 11, 2020

@matkoniecz Is case 3 common? Otherwise tagging them with crossing=no when the user answers "no" wouldn't be a huge issue. Or do you think one might answer yes?

@matkoniecz
Copy link
Member

matkoniecz commented Sep 11, 2020

For 3 tagging crossing=no would be incorrect. Especially if sidewalk is mapped as a road property sidewalk=, as it would mean that sidewalk and separate footway both reach the road ending, but are disconnected and it is impossible/illegal to walk there.

And highway=crossing would be incorrect in cases where crossing road is unnecessary to continue.

@matkoniecz
Copy link
Member

According to what I know excluding case three "a street that ends and continues as a footway" is impossible - at least I spend significant time on attempt to craft overpass query that would do this and failed.

With new filter no longer using Overpass this may be now easier to implement. Still not very easy (especially as both road(s) and footway(s) may be split at relevant node and so on).

@westnordost westnordost removed the help wanted help by contributors is appreciated; might be a good first contribution for first-timers label Nov 17, 2020
@westnordost westnordost self-assigned this Jun 24, 2021
@westnordost
Copy link
Member

Did I get that right? Any comments/ideas what else?

image

@matkoniecz
Copy link
Member

matkoniecz commented Jun 25, 2021

Looks OK to me, I see no other cases.

Extra notes: note that road/footway may be split at shared node.

Note that in some rejected cases there may be a crossing existing there, but SC should not ask about it.

highway=path should probably also trigger this, unless tagged with foot=no/private or an access=no/private not overriden by foot=yes/designated/permissive.

Maybe also highway=cycleway if with foot=yes/designated/permissive tags.

highway=footway where both sides are unnaccessible and road is also not accessible should not be shown.

@westnordost
Copy link
Member

done, done, done, done,

highway=footway where both sides are unnaccessible and road is also not accessible should not be shown.

what?

@matkoniecz
Copy link
Member

highway=footway where both sides are unnaccessible and road is also not accessible should not be shown.

highway=footway access=private crossing with highway=residential should trigger quest (surveyor can reach by road)

highway=footway access=private crossing with highway=residential access=private should not trigger quest

highway=footway crossing with highway=primary foot=no should trigger quest (surveyor can reach by footway)

@westnordost
Copy link
Member

Ah well, a private crossing along a public street doesn't really sound like something that occurs in reality.

@andrewharvey
Copy link
Contributor

Shouldn't the bottom example have highway=crossing on the node? I've certainly been mapping a highway=crossing on the node and from what I've understood from the wiki it should so that from the vehicle perspective drivers know when to expect a crossing on the road they are driving.

@matkoniecz
Copy link
Member

Shouldn't the bottom example have highway=crossing on the node?

In case where there is no crossing there it should not have - note that it is just transition between different styles of tagging sidewalks.

@westnordost
Copy link
Member

westnordost commented Jun 26, 2021

I brought up the topic in the German forum https://forum.openstreetmap.org/viewtopic.php?id=73140 , essentially to get more feedback if the cases as pictured above make sense and are complete, but mostly got a different kind of feedback.

Apart from the usual "why tag the absence of a feature at all, hurr durr" over which I hoped we got beyond that, there is also the opinion, that crossing=no means "not legal and not possible to cross the road" (fair enough) but at the same time, highway=crossing (+ crossing=unmarked) should only be used in places where there is a crossing facility of sort, not to mark that simply crossing is possible. The wiki is not very specific about that, but I'd also say, fair enough.

If this is how the tags should be interpreted, there is a tag missing for the situation that crossing is possible and legal, but there is no facility for it. crossing=yes exists but is not documented. crossing=informal also exists, but is also not documented.

I tend towards doing the following:

  • Not show the quest for footways that cross residential streets. Residential streets are usually so traffic-calmed that crossing the street is possible and legal at any point. Also, some residential streets tend to have many footways leading to the street from a row of these kind of apartment houses that are orthogonal to the street, i.e. the footways themselves are just the ways to the entrances, not a longer path for which asking would be interesting.
  • Change the wording to "Is this spot eligible for crossing the road?". Ultimatively, crossing=no is a marker useful for routers and should tell it to not route through that crossing. A router should not route through it not only if it is not possible or not legal, but also if it is not eligible, f.e. crossing this street is certainly technically possible and probably legal, it is really not eligible at all, so highway=crossing + crossing=unmarked would be quite wrong here.

@matkoniecz
Copy link
Member

highway=crossing (+ crossing=unmarked) should only be used in places where there is a crossing facility of sort, not to mark that simply crossing is possible. The wiki is not very specific about that, but I'd also say, fair enough.

It mismatches how I am using it and I am tempted to start discussion on tagging mailing list.

@westnordost
Copy link
Member

Well, what result do you expect from a discussion on the tagging mailing list? It seems, it'd rather be in order to do some spot-check research how the tag is used in reality.

@matkoniecz
Copy link
Member

Well, what result do you expect from a discussion on the tagging mailing list?

That people use it in different ways and such restriction is not always applied (generally not applied?).

it'd rather be in order to do some spot-check research how the tag is used in reality.

Hard to judge exactly (requires visiting location to confirm) and area where I can check is heavily influenced by my mapping. So I can ask other mappers, but posting on tagging.

@andrewharvey
Copy link
Contributor

In case where there is no crossing there it should not have - note that it is just transition between different styles of tagging sidewalks.

Oh right I missed the part where the road transitions from sidewalk=separate to sidewalk=both.

highway=crossing (+ crossing=unmarked) should only be used in places where there is a crossing facility of sort, not to mark that simply crossing is possible.

This is my understanding too. I use highway=crossing+crossing=unmarked to indicate there is a crossing here but it's not marked on the road, usually indicated by curb ramps or even an island.

here is a tag missing for the situation that crossing is possible and legal, but there is no facility for it.

more of a tagging matter, but I think that's better done as an attribute on the road way, by default you can assume you can cross the road anywhere, except where the road segment is tagged as crossing=no then you can't either physically or legally. highway=crossing is then reserved for only where there is a dedicated facility.

All this might need further discussion on tagging.

@westnordost
Copy link
Member

Right, so this issue is blocked until the tagging issue is resolved. Too bad, I already implemented it.

@westnordost westnordost added the blocked blocked by another issue label Jun 27, 2021
@mnalis
Copy link
Member

mnalis commented Jun 27, 2021

Apart from the usual "why tag the absence of a feature at all, hurr durr" over which I hoped we got beyond that, there is also the opinion, that crossing=no means "not legal and not possible to cross the road" (fair enough) but at the same time,

This is how I'm understating it too ("no means NO").

highway=crossing (+ crossing=unmarked) should only be used in places where there is a crossing facility of sort, not to mark that simply crossing is possible. The wiki is not very specific about that, but I'd also say, fair enough.

That is mostly how I would mark it, for example lowered curbs on sidewalk on both sides, but nothing marked on road. But I'd also use it if forest ground path "crosses" the road, even if there are no human-built changes to indicate it was intended as crossing, but where it is reasonable expectation that pedestrian crossing would happen right there.

On the other hand, marking every node on the road in Croatia which more than 50/100m away (see below) from marked crossing with crossing=unmarked would be quite silly IMHO (even as it would match tag definition), as there is no reasonable expectation that pedestrian crossing would be happening exactly there (but would happen everywhere along the road).

If this is how the tags should be interpreted, there is a tag missing for the situation that crossing is possible and legal, but there is no facility for it. crossing=yes exists but is not documented. crossing=informal also exists, but is also not documented.

I don't see a problem with crossing=unmarked, provided there is some reason why pedestrian would be crossing exactly there and not (let's say) 30 or 100 meters up or down the road.

Not show the quest for footways that cross residential streets. Residential streets are usually so traffic-calmed that crossing the street is possible and legal at any point.

Possible (and happening in practice) - probably yes; but legal - depends on jurisdiction. For example, in Croatia it is illegal to cross residential street (or any other street or even cycleway, except pedestrian street) where you want, unless closest marked crossing is more than 50m away (or 100m outside of town), when it becomes legal. And when it is legal, it is legal on all road types except motorways (with stipulation that pedestrian must not interfere with motor traffic, and must make sure it is safe to cross beforehand, and must cross it in shortest possible way, ie. not diagonally).

So at least here it is quite useful to mark pedestrian crossings on residential streets (and are probably the most popular crossing=marked I've mapped).

@jyasskin
Copy link
Contributor

jyasskin commented Aug 6, 2021

Per #2999 (comment), it's difficult to implement this quest for separate-way sidewalks, because a single crossing involves ~3 nodes and ~3 ways. For shared-way sidewalks, it might be easier to introduce crossings, since each crossing is then just 1 node. Each intersection could still involve introducing 2*count(intersecting-ways) crossings, but StreetComplete could ask the user to poke the places where the crossing nodes should be introduced, similar to how the "split a way" subquest asks us to poke the location of the new node. Does it make sense to refocus this on shared-way sidewalks?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blocked blocked by another issue new quest accepted new quest proposal (if marked as blocked, it may require upstream work first)
Projects
None yet
Development

Successfully merging a pull request may close this issue.

8 participants