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

Add crossing:signals field to crossing/*traffic_signals presets #1203

Draft
wants to merge 27 commits into
base: main
Choose a base branch
from

Conversation

tordans
Copy link
Collaborator

@tordans tordans commented Apr 28, 2024

This is based on top of #1201 and should only be merged after that was merged. For that reason it is marked as a draft for now.

I will rebase here in case #1201 changes.


This PR adds the field and add the addTags part.

This follows the conversation during the iD Community Meetup to consider adding the tag due to the usage in StreetComplete, Routers and the general impression that the crossing:signals=yes tag is widely "in use" and accepted.


Closes #1118
Makes parts of https://github.com/openstreetmap/id-tagging-schema/pull/1044/files#diff-b8505be38bbc0be40512bf63c04d79f36f8826808ba4f0c06f186527eddcc7b4 obsolete.

Terms are not used for unsearchable preset so we can remove them.
This streamlines the presets and makes it easer to review and use them.
This streamlines the crossings presets
This way we have the same fields in all crossing presets:
- "crossing"
- "tactile_paving"
- "crossing/island"

This change the order of things slightly for some footway, cycleway crossing where `surface` is now a bit lower, but that should not be a problem.
This streamlines the fields on all line geometry crossings.
- "oneway"
- "surface"
- "smoothness"
- "crossing_raised"
- "access"

Those fields are always the last in the list. For traffic signal those specific fields are put above. Which is also the only change for one vertex preset in this commit, to have the "crossing_raised" come after the traffic signal specific fields and so the order is the same across presets.

This will roll out the smoothness field for all crossings; it was previously only present in some. But given the importance of smoothness for accessibility I think that is OK. This commit also moves the surface (and smoothness where present) fields further down the list which reduces the priority a bit.

The biggest change in priority is the oneway-field which had the first position before and now is below the defaults- and markings-field.
This extract the three fields to be reused in all traffic_signals presets.
- "button_operated"
- "traffic_signals/sound"
- "traffic_signals/vibration"

Nothing else is changed, this is just an extraction into a template.
This extract the three moreFields to be reused in all traffic_signals presets.
- "traffic_signals/arrow"
- "traffic_signals/countdown"
- "traffic_signals/minimap"

For unclear reasons the cycleway/crossing/traffic_signals did not have those more fields which are now added to streamline the presets.
I added this in openstreetmap@3e5e99f an I think that was a mistake so lets remove it again.
The convention is, to tag this on the node _and_/_or_ on the separate `barrier=kerb+kerb=*` node when the path is mapped separately.
It should be part of all crossing vertex presets.
All those fields used a different order of properties, which made it hard to compare them.

This commit does not change anything on the fields, it just streamlines the same order of properties across files.
…tion

Using the preset I find the markings field to be the most important to change. The `@templates/crossing/defaults` is less important for all situation except for `data/presets/highway/crossing.json`. The main reasons for this is, that only on the base `highway/crossing` the field `crossing` is actually visible. For the more precise presets this field is hidden by some automatic part of the system.
All fields are unsearchable (for now) so we can learn how to name properly.

The names are adapted from `presets/highway/cycleway/crossing/bicycle_foot.json`.

The terms are removed because the presets are unsearchable.
…nd `@templates/crossing/defaults`

The field "crossing" is removed from the `/defaults` fields.
- it is only relevant for the geometry line because it is hidden on geometry vertex.
- but on geometry line, we want it to be on the first position of fields
- the `/defaults` fields however should be positioned below the `markings` which are more relevant for specifying the kind of crossing
- the `/defaults` fields now includes `crossing_raised` which was removed from the previous and discontinued `/geomery_line` fields template.

The new `@templates/crossing/bicycle_relevance`
- is used on all highways that have bicycle relevance which are `highway=path|cycleway` and not on `highway=footway`

For all traffic_signal presets, the order of fields is different to give the `/traffic_signal` more prominence.
The markings templates are not touched by this PR and it does seem to work without this. However, the fields are used on line and point geometries so either the `geometry` field is ignored during build or something else is happening…
…g `segregated`

The fields `oneway` and `access` are important for `highway=cycleway|path` crossings but not essential. They are more of a advanced user setup which should be visible when prev filled in but only added by users that read more about it before. They are moved to the `moreFields` for that reason.

The `segregated` is added here for the same reasons and because of it's importance for highway types that likely have bike traffic.
Ping openstreetmap#317

The `surface` and `smoothness` is extracted from the `@template` because it makes more sense to split them up in `fields` and `moreFields`. A templates adds too much abstraction in this case.
…ng notes

The field `flashing_light` was used on some of those presets. It is now more systematic.

I also kept them on the `traffic_signals` presets because those can have additional `flashing_lights` as well.
…ossings

The common practice is to tag this in the `highway=crossing` nodes and on separate `barrier=kerb` nodes but not on the crossing ways. Same as the `kerb` field.
Usually prettier can switch automatically to check Markdown and format it. However, this prettier config forces the JSON formatter for all files.
`npm run build` still works, so I don't think this is an issue.

This also removes the second run of very similar code in the prettier workflow which I think is probably a legacy redundancy that can just be deleted.

x
This fixes "crossing: New approach with …`@templates/crossing/defaults`".

We need the "crossing" field on vertex/node fields as well to allow to quickly change the preset.

SQ
…template/geometry_way_more`

The "lit" value was present on some of the presets before and is common to be applied to all kind of ways.
@tordans tordans marked this pull request as draft April 28, 2024 20:00
Copy link

🍱 You can preview the tagging presets of this pull request here.

@tordans tordans mentioned this pull request Apr 28, 2024
18 tasks
@tordans
Copy link
Collaborator Author

tordans commented Apr 28, 2024

Testing

Looks good.

For a crossing node with just crossing=traffic_signals + highway=crossing the addTags dialogue shows up as expected:

image

Follow up

  • Cleanup the addTags to only include the tags that are not already part of tags. Which makes it a lot easier to read and maintain.

Open question…

  • Do we actually want a field for this? Because the field allows to remove the "yes" value, which triggers the yellow update box (again). I think we shoudl remove the field and rely on addTags to add a tag that is only visible in the full tags part of the sidebar.
    • image

@tordans
Copy link
Collaborator Author

tordans commented Apr 28, 2024

Next steps

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

Successfully merging this pull request may close these issues.

crossing:signals
1 participant