StreetComplete icon indicating copy to clipboard operation
StreetComplete copied to clipboard

Add `ref` for `highway=emergency_access_point` and `emergency=access_point`

Open mcliquid opened this issue 3 years ago • 13 comments

General

Affected tag(s) to be modified/added: highway=emergency_access_point highway=access_point Question asked: Is there a reference number on this (emergency) access point?

Checklist

Checklist for quest suggestions (see guidelines):

  • [x] 🚧 To be added tag is established and has a useful purpose
  • [x] 🤔 Any answer the user can give must have an equivalent tagging (Quest should not reappear to other users when solved by one) "Answer: no" would add noref=yes
  • [x] 🐿️ Easily answerable by any pedestrian from the outside but a survey is necessary Regarding wiki, all access points have a number on the sign.
  • [x] 💤 Not an overwhelming percentage of quests have the same answer (No spam) There are "only" around 1400 missing ref's in Germany.
  • [x] 🕓 Applies to a reasonable number of map data (Worth the effort) Probably not really worth, but there a lot of similar quests which could be duplicated for this case. Regarding taginfo there are only 4-5 % of all access points without a ref-number which are worldwide 2.342 issues for this quest.

Disclaimer: I'm perfectly fine with closing the issue if it doesn't make sense.

Ideas for implementation

Element selection: (highway=emergency_access_point or emergency=access_point) and ref!=* Overpass Turbo for Germany: https://overpass-turbo.eu/s/1lVd

UI: UI and behaviour could be identical with the bus ref quest or the post_box ref quest.

mcliquid avatar Sep 16 '22 11:09 mcliquid

emergency access point will have code almost by definition, otherwise there are useless, right?

Regarding taginfo there are only 4-5 % of all access points without a ref-number which are worldwide 2.342 issues for this quest.

2132 after limiting to nodes: https://overpass-turbo.eu/s/1lVf

A bit borderline, but this data can be actually useful (for emergency services using OSM data and for resurvey whether emergency points are actually signed).

matkoniecz avatar Sep 16 '22 12:09 matkoniecz

A quest should have as "other" option:

  • no, this is a assembly_point https://wiki.openstreetmap.org/wiki/Tag:emergency=assembly_point

HolgerJeromin avatar Sep 16 '22 12:09 HolgerJeromin

emergency access point will have code almost by definition, otherwise there are useless, right?

I'm not an expert here unfortunately, I just noticed some of these bugs in my area on Osmose and that's where I got the idea for this quest.

If it is relevant, this is the Osmose Item / Class: https://osmose.openstreetmap.fr/en/issues/open?item=2080&class=20802 Source: https://github.com/osm-fr/osmose-backend/blob/master/plugins/TagFix_MultipleTag.py#L99

mcliquid avatar Sep 16 '22 12:09 mcliquid

  • Will the surveyor know what to look for when asked for an "emergency access point"?
  • Similarly, will he know if something is an "assembly point"?

westnordost avatar Sep 16 '22 15:09 westnordost

Will the surveyor know what to look for when asked for an "emergency access point"?

Good question and to be fully honest: I don't know. I for myself have never seen such a thing in reality. According to Overpass the next one in OSM is also a few hundred kilometers away, but I would have had now somehow already a green sign with a white cross in the head.

That would also be the idea for the quest icon: A white cross on a green background.

Similarly, will he know if something is an "assembly point"?

I can't answer that either. But an "assembly point" I have learned at least during my school time in "fire safety exercises" (Brandschutzübungen) and partly also had employers where this was part of the introduction.

Nevermind, I was bored and I've always wanted to create my first quest. So here is my implementation. I still wouldn't be sad if the quest doesn't fit. At least I ticked off "create your own quest" for myself.

I have used the red questionmark currently as the icon and duplicated the BusStopRef-Quest for this: image image image

Currently the "Other" option for assembly point is missing, but I want to try myself for this: image

mcliquid avatar Sep 16 '22 16:09 mcliquid

Will the surveyor know what to look for when asked for an "emergency access point"?

In my opinion: yes At least if they find them

Similarly, will he know if something is an "assembly point"?

I know them in germany with always the same sign. Other countries? But as this an menu item we can not have an icon direct visible.

HolgerJeromin avatar Sep 16 '22 16:09 HolgerJeromin

I've created a fork and pushed all commits to an own branch. Let me know if it's fine if I create a Pull Request for this Quest or if I should delete the branch.

If it's worth to continue, I would need help with the "Other Answer". I would continue with this in the AddAccessPointRefForm.kt: override val otherAnswers = listOf( AnswerItem(R.string.quest_accessPointRef_answer_assembly_point) { applyAnswer(AccessPointRefAnswer.ASSEMBLY_POINT) } ) But I don't get it how to add the ASSEMBLY_POINT in AccessPointRefAnswer.

mcliquid avatar Sep 16 '22 17:09 mcliquid

That's cool, congratulations! A few remarks of what you showed so far:

  1. Title question does not need to mention "emergency access point" because it is already mentioned in the hint below
  2. I guess if the emergency access point has a name (or anything else that could be used otherwise to reference it), it also should not be asked
  3. It probably needs a "does not exist here" option? Though, this is a bit dangerous of course, if the emergency access point looks different than one would expect and the user answers this erronously

Regarding your question: See for example SmoothnessAnswer on how to add "out of the line" answer options.

Regarding the eligibility of this quests, my concerns are:

  • with noref=yes, name and ref excluded, how many elements are these exactly worldwide? Is this even worth the effort then? (A number has been cited earlier but I think it did not take name and noref into account)
  • not sure if "the average Joe" would be able to identify an emergency access point as one? Maybe a picture can help - if they don't look very different across countries i.e. their appearance is somewhat international. Needs some research
  • not sure if "the average Joe" would know what an "assembly point" is. Maybe a picture can help, i.e. when the user taps on "is assembly point", a picture is shown, asking "so something like this is visible?". (The same is done for when the user answers that something is a living street in the maxspeed quest). That too, depends on whether there is some kind of international symbol maybe?

In any case, even if this turns out to be too problematic for Streetcomplete, maybe Helium would include this in his "expert" edition, so I think it is fine to create a PR once you think it is done.

westnordost avatar Sep 16 '22 17:09 westnordost

1. Title question does not need to mention "emergency access point" because it is already mentioned in the hint below 2. I guess if the emergency access point has a name (or anything else that could be used otherwise to reference it), it also should not be asked

Fixed both of them.

3. It probably needs a "does not exist here" option? Though, this is a bit dangerous of course, if the emergency access point looks different than one would expect and the user answers this erronously

I can't get it to work yet, this seems to be too complex for me at the moment, as a lot of references to other functions have to be created. For this I would have to read up more deeply but I will do some more attempts to add more functionality.

  • with noref=yes, name and ref excluded, how many elements are these exactly worldwide? Is this even worth the effort then? (A number has been cited earlier but I think it did not take name and noref into account)

Including all filters there are 1117 items remaining worldwide (Overpass)

I've added already a quest icon, so that's the current state: image

Yeah, maybe @Helium314 could hand over at this point if interested.

mcliquid avatar Sep 16 '22 19:09 mcliquid

I can't get it to work yet, this seems to be too complex for me at the moment, as a lot of references to other functions have to be created. For this I would have to read up more deeply but I will do some more attempts to add more functionality.

add override val isDeleteElementEnabled = true

westnordost avatar Sep 16 '22 20:09 westnordost

add override val isDeleteElementEnabled = true

Thank you! That works.

Now the Other Answer -> Assembly Point also works:

image

If that's the case, the tags"highway=emergency_access_point" and "emergency=access=point" are removed. Overwrite works fine with tags["emergency"] = "assembly_point" in is IsAssemblyPointAnswer For the removal I only find tags.remove() but this removes the complete highway Tag. Shouldn't be a big problem at all, because there are only 37 Nodes which would be affected worldwide, but a few of them have highway=milestone which would then be deleted.

image

Overpass: https://overpass-turbo.eu/s/1lWg

Is there a way to only remove highway with emergency_access_point?

Edit: Just found out that it's rendered in the Emergency Map

mcliquid avatar Sep 16 '22 21:09 mcliquid

@mcliquid You can check tag value - for example in AddTactilePavingKerb

    override fun applyAnswerTo(answer: Boolean, tags: Tags, timestampEdited: Long) {
        tags.updateWithCheckDate("tactile_paving", answer.toYesNo())
        if (tags["kerb"] != "no") {
            tags["barrier"] = "kerb"
        }
    }

matkoniecz avatar Sep 16 '22 21:09 matkoniecz

@mcliquid You can check tag value - for example in AddTactilePavingKerb

Nice, thank you! That worked. image

I've tested it with multiple nodes and I would say the quest works really well now. I will create a PR for more review.

mcliquid avatar Sep 16 '22 22:09 mcliquid

The ticket will be closed automatically after the PR has been merged. Since the PR includes new string, this will happen in preparation of the v48.0 release, latest on the 30th of September.

westnordost avatar Sep 25 '22 20:09 westnordost

Just to clarify @westnordost, will the strings for translation be available on 30th of September, or would 48.0 itself be released on 30th, and translation are supposed to be finished before that?

mnalis avatar Sep 28 '22 11:09 mnalis

@mnalis As I understand 30th of September is planned to be date of alpha release and date when strings become available for translations (so it would be initial step in v48 release cycle)

matkoniecz avatar Sep 28 '22 11:09 matkoniecz

Oh, OK, thanks @matkoniecz. So 48.0-alpha1 gets released on 2022-09-30 along with translation strings, and actual 48.0 releases some weeks after that (depending on the feedback).

Although as a translator I wouldn't mind at all (i.e. would like it) if translation strings were released few days before 48.0-alpha1 (so if I'm quick I might get a chance to test my strings live in 48.0-alpha1, and then maybe then tweak them a little for final 48.0). But not a critical thing, just would be nice.

mnalis avatar Sep 28 '22 11:09 mnalis