streetcomplete / StreetComplete

Easy to use OpenStreetMap editor for Android
https://streetcomplete.app
GNU General Public License v3.0
3.84k stars 348 forks source link

Kerb / Curb quest surface type and tactile plates for sidewalk data #1305

Closed omgitsgela closed 3 years ago

omgitsgela commented 5 years ago

I am suggesting here two quests related to inclusive pedestrian mapping as defined in https://wiki.openstreetmap.org/wiki/Sidewalks. This has the potential to affect a large amount of kerb ramp data in a positive way.

General

  1. Define what type of kerb interface a crosswalk has to a sidewalk Affected tag(s) to be modified/added: [kerb=] https://wiki.openstreetmap.org/wiki/Key:kerb Search for type=point ; barrier=kerb, which should define a single node on a highway= segment Ask "How high is this kerb ramp?" Answers: flat ; lowered ; raised

  2. Ask if a kerb ramp has a tactile plate that would be used by the blind Affected tag(s) to be modified/added: tactile_paving=* Question asked: Does this kerb ramp have a tactile plate for the blind? Answers: yes ; no

Checklist

Checklist for quest suggestions (see guidelines):

Ideas for implementation

We should use graphical depictions of the kerb ramp heights to show people what the different types are. There's very good graphics available on the Key:kerb page for each option.

We should also use a graphic to show a tactile plate, so people know what it is when asked.

pkoby commented 5 years ago

I like this idea, but there are some points that will probably need to be taken into consideration.

I think the kerb ramp quest ought to be applied only to the nodes of the sidewalk meeting the crosswalk, because unlike tactile paving, there is no =no option that you can apply to the crossing node. If the kerb heights differ, there is no tag that can state that for a single node (https://wiki.openstreetmap.org/wiki/Key:kerb). The wiki page suggests using the tag on the crossing node if they are the same on both sides, but SC can't really do one or the other. Ideally, both kerb height and tactile paving would be applied to the actual sidewalk lines, not the crossing junction. It's not important to know if there is tactile paving at a crosswalk for the road users (car drivers), so there's no reason to add these tags to the road node unless there isn't a sidewalk line. In my opinion, sidewalks should be mapped anyway, and tagging just a crossing node leaves room for improvement.

omgitsgela commented 5 years ago

Are you suggesting that the current StreetComplete quest about tactile_paving applies the tagging to the crosswalk line itself, and not the nodes? That doesn't actually match up with the best case practices for inclusive sidewalk mapping.

What we're doing is using a barrier=kerb node at the interface between the highway=crossing and the highway=footway, and specifically identifying the features of that crosswalk ramp discretely. If you assume data on both sides of the crosswalk is identical, you leave a lot of cases which become messed up, like a lowered curb on one side and a tactile plate equipped flush ramp on the other. Or where crosswalks span multiple nodes or connecting features.

My suggestion for these two quests is absolutely to apply them to the type=node, and definitely not to a way/line.

For your reference, take a look at this area of my town I've mapped: https://www.openstreetmap.org/edit#map=20/42.68770/-71.12140

And Nick Bolten's talk about best practices for distinct sidewalk mapping. https://www.youtube.com/watch?v=DHecYP_b3os

I like this idea, but there are some points that will probably need to be taken into consideration.

  • tactile_paving=* is already a quest (often disabled, though; check settings), applied to the crossing node where a crosswalk meets a highway. The question asks if both sides of the crosswalk have tactile paving. Unfortunately, this means that one side may have it and the other not, and this is answered as =no. (The wiki page does not suggest this method, but does suggest doing it on the nodes of the sidewalk to crosswalk change: https://wiki.openstreetmap.org/wiki/Key:tactile_paving#Use_on_nodes.)
  • Kerb height could be applied similarly, and in the iD editor is asked for crossing nodes as well. I would assume it would be asked similarly to the tactile_paving quest, where both sides would be the same. Of course, if the two ramps are different for one crossing node, I don't know how it would be answered.
  • Kerb height could be applied to the nodes where the sidewalk meets the crosswalk lines if they are mapped in detail. I think this is the best way to place the data (and same for the tactile paving, if the sidewalk lines are mapped), but that's currently not how it's done in StreetComplete.

I think the kerb ramp quest ought to be applied only to the nodes of the sidewalk meeting the crosswalk, because unlike tactile paving, there is no =no option that you can apply to the crossing node. If the kerb heights differ, there is no tag that can state that for a single node (https://wiki.openstreetmap.org/wiki/Key:kerb). The wiki page suggests using the tag on the crossing node if they are the same on both sides, but SC can't really do one or the other. Ideally, both kerb height and tactile paving would be applied to the actual sidewalk lines, not the crossing junction. It's not important to know if there is tactile paving at a crosswalk for the road users (car drivers), so there's no reason to add these tags to the road node unless there isn't a sidewalk line. In my opinion, sidewalks should be mapped anyway, and tagging just a crossing node leaves room for improvement.

pkoby commented 5 years ago

No, I definitely don't think they should be applied to lines (except when there's tactile paving along a whole crosswalk, per the wiki). I think the tags should be applied to the actual location of the ramp/tactile plate, which would be the node connecting the crosswalk and sidewalk. Your example location is exactly how I would do it.

Currently, however, SC only poses the quest for tactile paving on the junction node of the crosswalk line and the road line (where in iD it's labeled Marked Crosswalk on the node). I don't like this format at all, because as you said, there are many cases where each side of the crossing is different.

So to sum up, I think your suggestion is excellent, I agree with all points, and ideally, SC would not ask the quest for the junction on the road, but at the edge of the sidewalk, where it matters to pedestrians.

Incidentally, other quests asked for the crossing node on the road include what type of crosswalk it is (marked, unmarked, etc.), whether there are sound signals for the blind, and whether there are buttons to change the light. I think all of these quests are fine on the road junction node.

omgitsgela commented 5 years ago

Oh, okay, I see what you were saying. Yeah, there's not really a good reason to apply tactile_plate at the junction between the crosswalk and the car roadway line. That's definitely not how it appears in the real world...

pkoby commented 5 years ago

I think the reasoning for how it is right now is that otherwise crossings without the actual line data for the sidewalk network would not have any information about tactile paving.

goldfndr commented 5 years ago

I don't think searching for barrier=kerb would be adequate, but here's an Overpass query for the interfaces between sidewalks and crosswalks:

[bbox:{{bbox}}];
way[highway][footway=sidewalk]->.w1;
way[highway][footway=crossing]->.w2;
node(w.w1)(w.w2);
out;

/ Add this for some coloring /
{{style:
node { color:red; fill-color:red; }
node[kerb] { color:green; fill-color:green; }
}}

westnordost commented 5 years ago

Why do you think that searching for barrier=kerb is not adequate?

I tried out your query and got this: http://overpass-turbo.eu/s/F0T When searching for barrier=kerb, I think the probability that the interfaces are mapped correctly is somewhat bigger.

pkoby commented 5 years ago

Searching for barrier=kerb would probably not work right, because that tag is usually used on ways. So maybe you'd search for the nodes that intersect a way tagged with barrier=kerb? This depends on these barriers being mapped, which I don't think is likely in many cases. Querying for the interface between crossing and sidewalk should find the correct points where the kerb ramp would actually be.

Either (any) option relies on previously correct mapping in some form or another. The crosswalk tag could be left off, and the quest wouldn't find those nodes. The kerb barrier might not be mapped. Or the crossing way might be in the wrong spot. But based on some quick spot checks in Overpass, the query goldfndr posted seems most promising.

westnordost commented 5 years ago

My point was that with @goldfndr query + asserting that the found nodes must have barrier=kerb tagged would lower the probability to run into cases like the one linked by me somewhat because if the barrier=kerb tag is present, it denotes that someone already prepared the data in a way that is compatible to kerb-mapping. I mean, the spot I linked, is it really plain a mistake or just not mapped so much in detail than it would need to be to enable proper kerb-mapping?

pkoby commented 5 years ago

By my understanding of the wiki, barrier=kerb is not usually used for tagging nodes, and certainly not in the kerb-ramp situation. The page for kerb=* only mentions barrier=kerb as a "see also" and as an open issue to use kerb=* as a sub-tag for barrier=kerb (but this isn't mentioned in the discussion or anywhere else on this page). The page for barrier=kerb doesn't mention kerb=* at all.

I think in practice, a barrier=kerb line will probably coincide with the kerb=* node at the interface between footway=sidewalk and footway=crossing, but the former is not necessary for the latter. It's just probable that a kerb along the edge of the road will have crossings at certain points (sometimes with kerb cuts), and vice versa a kerb cut will probably be on a kerb line.

ViolaineDo commented 5 years ago

Searching for barrier=kerb would probably not work right, because that tag is usually used on ways. So maybe you'd search for the nodes that intersect a way tagged with barrier=kerb? This depends on these barriers being mapped, which I don't think is likely in many cases. Querying for the interface between crossing and sidewalk should find the correct points where the kerb ramp would actually be.

Either (any) option relies on previously correct mapping in some form or another. The crosswalk tag could be left off, and the quest wouldn't find those nodes. The kerb barrier might not be mapped. Or the crossing way might be in the wrong spot. But based on some quick spot checks in Overpass, the query goldfndr posted seems most promising.

Hi, Just joining this discussion, I am not sure what was the conclusion of this discussion so here is my 2 cents.. I too think this quest (about kerb) would be super interesting to implement. I am wondering if that would be the best thing to query intersection footway=crossing / footway=sidewalk as I don't think those would be always mapped properly. Here is an example of the kind of mistake I see, which can be quite recurrent if people don't think about tactile_paving or kerbs... https://overpass-turbo.eu/s/IAL If a kerb was mapped here we would wonder if there is a kerb on the sidewalk near the crossing, or is there a kerb between the sidewalk and the crossing. So I would query intersection between footway=crossing/footway=sidewalk and with tag barrier=kerb. Indeed people would need to prepare it but else I think it would lead to many mistakes... Hope I am helping, Violaine

westnordost commented 4 years ago

I read through this issue again, summarizing the discussion, the type of kerb should probably be asked on the following nodes:

  1. on all nodes tagged as barrier=kerb - to catch the case where it is mapped as a node barrier_kerb
  2. on nodes that are at the intersection between a barrier=kerb way and a footway - to catch the case where a footway crosses a kerb line barrier_kerb_way
  3. on nodes that are each the end-points of two footways, one of them having the tag footway=sidewalk and the other footway=crossing sidewalk_crossing But not ine these situations: sidewalk_crossing2

On topic of the tactile paving, this can be implemented quite easily.

matkoniecz commented 3 years ago
way["barrier"="kerb"]({{bbox}});
node(w)->.kerb_way_nodes;
way["highway"~"^footway|path|cycleway"]({{bbox}});
node(w)->.footway_way_nodes;
node.kerb_way_nodes.footway_way_nodes;
out;
node.footway_way_nodes["barrier"="kerb"];
out;
matkoniecz commented 3 years ago

Answers: flat ; lowered ; raised

I would include raised, lowered, flush. rolled seems really rare.

matkoniecz commented 3 years ago

raised https://wiki.openstreetmap.org/wiki/File:Kerb.jpg (maybe https://wiki.openstreetmap.org/wiki/File:Kerb_regular_Okerstra%C3%9Fe_Lichtenrader_Stra%C3%9Fe_Berlin.jpg )

lowered https://wiki.openstreetmap.org/wiki/File:Dropped_kerb.jpg

missing! Photo with lowered curb without ramp. (also for lowered)

missing: decent photo for flush curb

Hopefully someone will manage to find good picture (frontal view from street) or there will be at least one day with a good light this Autumn in Kraków and I will be able to take a photo.

westnordost commented 3 years ago

raised

better a picture of a concrete curb, stone is really rare and might be confusing. Or, maybe better an icon that just shows the profile?

matkoniecz commented 3 years ago

Or, maybe better an icon that just shows the profile?

I am not entirely sure whatever profile icon would be clear to people - technical and semi technical drawing are surprisingly often not understood by people.

westnordost commented 3 years ago

mh ok

alesarrett commented 3 years ago

Hi all, sorry for joining this discussion late, but I have a couple of general remarks. I've mapped a lot of kerbs in Padua for the local Plan for elimination of architectural barriers (here's the poster at the SOTM 2019: https://doi.org/10.5281/zenodo.3370705) and I have two main points:

matkoniecz commented 3 years ago

So the main search should be in my opinion on nodes with kerb=* and not only on barrier=kerb

Adding resurvey of old kerb=* may be a good idea.

I think there is no reference neither of kerb ramps, so the questions should be on the kerb itself, not the ramp, because the is no common documented way to tag kerb ramps so far.

See https://wiki.openstreetmap.org/wiki/Key:kerb - photo example for lowered value.

alesarrett commented 3 years ago

So the main search should be in my opinion on nodes with kerb=* and not only on barrier=kerb

Adding resurvey of old kerb=* may be a good idea. Do you mean that all kerb=* should be mapped also with a barrier=kerb?

I think there is no reference neither of kerb ramps, so the questions should be on the kerb itself, not the ramp, because the is no common documented way to tag kerb ramps so far.

See https://wiki.openstreetmap.org/wiki/Key:kerb - photo example for lowered value.

This is really confusing to me. The whole distinction among raised, lowered and flush kerbs is about height and not the fact that that there is a ramp or not. There are kerbs with ramps that have a height at the connection of sidewalk/crossing that is >3cm, and those are raised kerbs. There are kerbs with just a few centimetres height (0-3) without a ramp, and they still are lowered. And to me also that image about lowered value is confusing, because in fact it seems to be a flush kerb (~0 cm height) with a ramp. It seems to me that we are missing a way to correctly tag height of kerbs and presence/absence of ramps at the intersections between sidewalks and crossings. Might a discussion on this in the mailing list be useful?

matkoniecz commented 3 years ago

Maybe. In this case I see this ramp as being a kerb ("dropped kerb") - https://wiki.openstreetmap.org/wiki/File:Dropped_kerb.jpg

And it is still a bit of a barrier due to its slope. Mixing "kerb but low" and "kerb ramp reaches road surface but is quite step" in kerb=lowered may be not ideal and may be worth distinguishing, but I am not aware about any existing tagging (and SC would not invent a new tagging).

If anyone is interested in proposing new tagging for distinguishing "dropped kerb" and "low kerb but still not 0" then, once such tagging would be accepted (via accepted proposal or by some minor but noticeable use and being documented at wiki) I would gladly use it.

Also, if Wiki is wrong then it should be fixed, but from what I see that tagging practice is accepted.

matkoniecz commented 3 years ago

I will need to look at it a bit more, but it seems that this quest will be the first to add tags to OSM objects that had no tags before the SC edit :)

2020-10-18 22:52:09.935 7417-7417/de.westnordost.streetcomplete.debug E/AndroidRuntime: FATAL EXCEPTION: main
    Process: de.westnordost.streetcomplete.debug, PID: 7417
    java.lang.NullPointerException: element.tags must not be null
        at de.westnordost.streetcomplete.data.quest.QuestController.createOsmQuestChanges(QuestController.kt:154)
        at de.westnordost.streetcomplete.data.quest.QuestController.solveOsmQuest(QuestController.kt:133)
        at de.westnordost.streetcomplete.data.quest.QuestController.solve(QuestController.kt:90)
        at de.westnordost.streetcomplete.map.MainFragment$onAnsweredQuest$1.invoke(MainFragment.kt:326)
        at de.westnordost.streetcomplete.map.MainFragment$onAnsweredQuest$1.invoke(MainFragment.kt:76)
        at de.westnordost.streetcomplete.map.QuestSourceIsSurveyChecker$assureIsSurvey$1.onClick(QuestSourceIsSurveyChecker.kt:41)
        at androidx.appcompat.app.AlertController$ButtonHandler.handleMessage(AlertController.java:167)
        at android.os.Handler.dispatchMessage(Handler.java:107)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7356)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
westnordost commented 3 years ago

Dang!

I fixed it

LorenzoStucchi commented 3 years ago

Hello, I saw this improvement for StreetComplete on the topic of mapping the accessibility.

I found a critic aspect in the methodology of the insertion of the kerbs on the ways. Now the tags about the kerb are inserted in the node that is in the common between the sidewalk and the crossing. This for me is an error because a routing engine will found a barrier also if I'm only walking on the sidewalks. Instead, it is a barrier only at the moment that the user uses the crossing. So for me, the kerb should be located on a node that is part only of the crossing.

I try to provide a better description with these images:

The mapping produced by StreetComplete, with the kerbs on the sidewalks The mapping produced by StreetComplete

Example of mapping the kerb correctly Example of mapping the kerb correctly

The images visualize some real data mapped in Milan, by the project ViaLibera, in JOSM with the style that I created.

westnordost commented 3 years ago

Are you sure about this claim? We have implemented it exactly so that StreetComplete does not do what what you see in the first picture.

This is the code to find locations at which to ask for kerb tactile paving / kerb height: https://github.com/streetcomplete/StreetComplete/blob/master/app/src/main/java/de/westnordost/streetcomplete/quests/kerb_height/KerbUtil.kt

westnordost commented 3 years ago

See also the visualization at https://github.com/westnordost/StreetComplete/issues/1305#issuecomment-688333976

matkoniecz commented 3 years ago

The mapping produced by StreetComplete, with the kerbs on the sidewalks

Can you link any location/edit where StreetComplete user added this kind of data? It should not happen, it was designed and tested to avoid this.

The closest case where something similar could happen is that

(1) there is a separately mapped footway along road that terminates, turns into crossing and the same situation is on other side

(2) StreetComplete user added kerb

(3) someone mapped remaining separately mapped footway starting from crossing/sidewalk join.

But in this case mistake would happen mostly in step (3) anyway.

LorenzoStucchi commented 3 years ago

Can you link any location/edit where StreetComplete user added this kind of data? It should not happen, it was designed and tested to avoid this.

I found it in different points, I correct some of them. This is an example that I kept, the way in OSM, PeWu way, PeWu node.

The last link shows the node where the tags were added.

The closest case where something similar could happen is that

(1) there is a separately mapped footway along road that terminates, turns into crossing and the same situation is on other side (2) StreetComplete user added kerb (3) someone mapped remaining separately mapped footway starting from crossing/sidewalk join.

But in this case mistake would happen mostly in step (3) anyway.

In the example, the crossing was drawn and the kerbs were mapped. But StreetComplete added the kerb on the node common between the crossing and the sidewalks.

The current situation is quite chaotic and is the one shown in the image. Double kerbs

westnordost commented 3 years ago

In your last picture, I understand the northernmost kerb was added by StreetComplete? Why does the sidewalk-footway not continue east? Also, why is the footway in between the two nothernmost kerbs tagged with footway=crossing?

LorenzoStucchi commented 3 years ago

In your last picture, I understand the northernmost kerb was added by StreetComplete?

Yes, the top kerb and the bottom kerb.

Why does the sidewalk-footway not continue east?

The mapper stops its mapping, there is not another specific reason for the interruption.

Also, why is the footway in between the two nothernmost kerbs tagged with footway=crossing?

This is the schema decided, the part between the kerb and the sidewalks is part of the crossing. Here an example image inserted in the wiki, with the colours that shows the crossings and the sidewalks.

matkoniecz commented 3 years ago

screen07

Here original tagging was inconsistent, with middle segment tagged as sidewalk.

It seems to me that either there should be no footway=sidewalk here at all or that it should start at kerb. Is it really considered as correct to map that way?

matkoniecz commented 3 years ago

The mapper stops its mapping, there is not another specific reason for the interruption.

Yes, that is case mentioned in https://github.com/streetcomplete/StreetComplete/issues/1305#issuecomment-759518652 (incomplete mapping) with added bonus of defining that crossing doe not end on kerb and mapping that kerb - despite not mapping sidewalk connection to East/North.

matkoniecz commented 3 years ago

I found it in different points, I correct some of them. This is an example that I kept, the way in OSM, PeWu way, PeWu node.

And thanks for link, now I understand what happened. Not sure yet what should be done with that.

LorenzoStucchi commented 3 years ago

The mapping was consistent as explained in the wiki about the project following the different rules of mapping. The middle part with the tag footway=sidewalk could be contested, but it represents an area where the user could stop while walking. This is the tagging used in Italy in different projects.

I don't know if the way this is mapped is as defined as:

Yes, that is case mentioned in #1305 (comment) (incomplete mapping) with added bonus of defining that crossing doe not end on kerb and mapping that kerb - despite not mapping sidewalk connection to East/North.

But I believe that it is not correct that the app adds new nodes with the attributes of the kerbs where these elements are already existing. For me, it should check if other nodes in the crossing have the attributes kerb and add the tag to it.

matkoniecz commented 3 years ago

But I believe that it is not correct that the app adds new nodes with the attributes of the kerbs where these elements are already existing. For me, it should check if other nodes in the crossing have the attributes kerb and add the tag to it.

Checking tags of given node is easy, checking tags and count of attached ways is doable, checking tags on nodes of nearby ways is hard to do.

LorenzoStucchi commented 3 years ago

But I believe that it is not correct that the app adds new nodes with the attributes of the kerbs where these elements are already existing. For me, it should check if other nodes in the crossing have the attributes kerb and add the tag to it.

Checking tags of given node is easy, checking tags and count of attached ways is doable, checking tags on nodes of nearby ways is hard to do.

Not nearby, but nodes in the same way of the crossing. Is this not just recursion? How it is checked if the tags are not already in an existing node? It is not just the same issue, before proposing the quest to verify the presence of other nodes with the tags in the same way with the tag highway=crossing.

matkoniecz commented 3 years ago

Not nearby, but nodes in the same way of the crossing.

If it is OK to fail on split ways - yes.

How it is checked if the tags are not already in an existing node?

https://github.com/streetcomplete/StreetComplete/blob/master/app/src/main/java/de/westnordost/streetcomplete/quests/kerb_height/AddKerbHeight.kt#L15 but most of checks is in https://github.com/streetcomplete/StreetComplete/blob/master/app/src/main/java/de/westnordost/streetcomplete/quests/kerb_height/KerbUtil.kt

matkoniecz commented 3 years ago

Not nearby, but nodes in the same way of the crossing.

Also, that would break asking for kerb info if one if two kerbs on crossing is mapped already.

westnordost commented 3 years ago

I read up on this thread and came to the conclusion that I think nothing needs to be changed in StreetComplete.

I'll explain why

So it seems, that both

(a)

and

(b) 92394949-c7b60b80-f122-11ea-9b8b-ccba004fd088

are accepted / in use schemes to tag a crossing with kerbs. Option (b) with either a single way that connects the two sidewalks or several connected highway=crossing ways. You would want several connected ways as part of the crossing to correctly map the surface tag of for the crossing: The part of the crossing that is still on the sidewalk would be surface=paving_stones, the "real" part of the crossing would be surface=asphalt (usually).

StreetComplete asks mainly for kerb properties for nodes that are either

  1. ...already tagged with barrier=kerb, or...
  2. ...are the intersection point of a barrier=kerb line with a highway=footway

Additionally, it detects situations where an implicit kerb can be assumed, but only if the crossing is mapped like in situation (a). It specifically excludes situation (b) as to not set a kerb on the intersection between the sidewalk and the crossing, because of the reasons you explained. It ensures that by checking that an implicit kerb can only ever be assumed at the end node of a highway=footway + footway=crossing that connects to exactly one highway=footway + footway=sidewalk, i.e. is a continuation of the crossing and not an intersection of that crossing. This means that if your community tags kerbs at intersections that way (like (b)), the app will not find if there is a kerb unless you always tag barrier=kerb there.

The situation as depicted here

only comes to pass because the app wrongfully interprets the sidewalk mapped at the top to be the continuation of the crossing that leads to the proper part of the sidewalk. Why? Because the mapping of the intersection is incomplete.

One can use the sidewalk=left/right/both/no scheme to map sidewalks and one can do the more precise scheme with separately mapped sidewalks like done here, both are considered "OK". However, one can not expect that any data consumer (this app is a data consumer in this regard) will interpret the data correctly if there is no proper point where the schemes are brought together.

One example how to do it correctly is here: image https://www.openstreetmap.org/#map=19/53.74883/9.67691 ...but it is definitely not correct to do this in the middle of an intersection or stop mapping in the middle of an intersection.

Edit: Using that intersection as an example to show why stopping to map an intersection in detail at that point is really wrong / problematic for data consumers. Imagine the sidewalk-footway on the upper left of that picture would be missing and instead sidewalk=both was mapped on Langelohe starting at the intersection of it with the top-left-most crossing. Then, the most obvious way to route a pedestrian coming from Hamburger Straße and turning right into Langelohe would be to route him like this: image , i.e. cross the road half-way, then continue on Langelohe. Which is obviously wrong.

westnordost commented 3 years ago

I also thought about how to detect the presented situation of an incompletely mapped intersection reliably, but there is none that I can see:

matkoniecz commented 3 years ago

So, in case of incomplete data StreetComplete may do something dumb and may require a bit of cleanup from someone completing sidewalks.

But in this case it would require that at the same

(1)

Or

(2) It would happen in cases where footway=sidewalk were mapped at the island of crossing AND part of footway between kerb and central part of island was mapped as footway=crossing AND kerb was explicitly mapped.

If there is consensus among Italian community that such behavior of StreetComplete is unspeakably evil then the entire quest can be disabled in Italy. But I am not going to implement filtering out such cases as it would disable also places where quest is legitimate.

westnordost commented 3 years ago

@matkoniecz I don't understand (2). Can you illustrate, maybe both points if they haven't yet?

westnordost commented 3 years ago

StreetComplete is unspeakably evil

Well, fact is that the app is adding incorrect data, which is not good. However, my point earlier was that it is only adding incorrect data because the data it worked on was already incorrect. This makes it less bad, especially as the mistake can easily be corrected when the road is mapped further (the sidewalk-mapping is being continued) later.

matkoniecz commented 3 years ago

@matkoniecz I don't understand (2). Can you illustrate, maybe both points if they haven't yet?

https://github.com/streetcomplete/StreetComplete/issues/1305#issuecomment-759582272 - StreetComplete added inner kerbs despite outer kerbs being present already.

matkoniecz commented 3 years ago

Well, fact is that the app is adding incorrect data, which is not good. However, my point earlier was that it is only adding incorrect data because the data it worked on was already incorrect. This makes it less bad, especially as the mistake can easily be corrected when the road is mapped further (the sidewalk-mapping is being continued) later.

I agree, but I think that disabling quest on request from local community is OK. Even if the quest works perfectly fine.

As long as it is an actual consensus, not a single person complaining.

westnordost commented 3 years ago

@matkoniecz I don't understand (2). Can you illustrate, maybe both points if they haven't yet?

1305 (comment) - StreetComplete added inner kerbs despite outer kerbs being present already.

Hm sorry, I don't understand this illustration. The background imagery is so blurred that I don't understand what is the real world situation here and I also don't know what the icons and the slightly different colors of the lines stand for.

matkoniecz commented 3 years ago

screen11

My diagnosis is that on such island footway=sidewalk is suspicious at best. And footway=crossing within island, beyond kerb - but not on the entire island between carriageways - makes no sense.

Either crossing should be on the entire island between carriageways or it should not extend beyond kerb.

westnordost commented 3 years ago

Right, understood. I see no problem to use footway=sidewalk on an island, but then it doesn't make sense that the sidewalk part doesn't extend till the kerb... at least I cannot picture a situation where that would make sense.

LorenzoStucchi commented 3 years ago

Right, understood. I see no problem to use footway=sidewalk on an island, but then it doesn't make sense that the sidewalk part doesn't extend till the kerb... at least I cannot picture a situation where that would make sense.

I add the idea of the tagging schema chosen here. The tagging schema is the one described as (b), because it is also more similar to the mapping of streets. The idea is to transform something that is an area in a line. A new street starts at the insertion with the other, and they follow a schema equal to (b) and not to (a).

(a) (b) 92394949-c7b60b80-f122-11ea-9b8b-ccba004fd088

I'm not sure to the use of the footway=sidewalkin the island, but the size of them could very change and in some cases, they are really sidewalks. However, tag them as footway=crossing should be also wrong in very different cases. There is an alternative?