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 public_transport tag to the bus_stop preset #4566

Closed
wants to merge 1 commit into from
Closed

add public_transport tag to the bus_stop preset #4566

wants to merge 1 commit into from

Conversation

nlehuby
Copy link
Contributor

@nlehuby nlehuby commented Nov 26, 2017

This PR add a field to the bus stop preset, to fill the public_transport tag
ptv2

Do I need to do something more to handle the translations ?

I did not manage to get the tests run, it gets stuck at the iD.uiFieldWikipedia doing nothing 😣

@bhousel
Copy link
Member

bhousel commented Nov 26, 2017

My concern about this is that it would allow any of the public_transport= values to be tagged on any of the highway=bus_stop, and from reading the bus stop wiki page, it looks like there are some combinations that are accepted and some that are not.

Maybe a better solution would be to split the bus stop preset into two presets - a vertex one that would automatically add public_transport=stop_position and another one for all other geometries that would automatically add public_transport=platform. They could both be labelled "Bus Stop" so that the user doesn't need to care about which preset they are using, and the public_transport complexity can be hidden from them.

@bhousel bhousel added the considering Not Actionable - still considering if this is something we want label Nov 27, 2017
@bhousel
Copy link
Member

bhousel commented Nov 27, 2017

Just realized this relates to #3041 too

@nlehuby
Copy link
Contributor Author

nlehuby commented Nov 27, 2017

Ok. I like very much your counterproposal, this would be even simpler for the user 👍

How do we move on with this ? Do I need to convert this to an issue, so that we can have a proper discussion ? Can I change my current PR to do what you proposed ?

@slhh
Copy link
Contributor

slhh commented Nov 28, 2017

Maybe a better solution would be to split the bus stop preset into two presets - a vertex one that would automatically add public_transport=stop_position

I agree, but we need to limit this to vertexes of a road in order to allow an automatic separation from the platform one.

and another one for all other geometries that would automatically add public_transport=platform.

I think the platform node can also be a vertex, e.g. of a footway, kerb, shelter etc.

They could both be labelled "Bus Stop" so that the user doesn't need to care about which preset they are using, and the public_transport complexity can be hidden from them.

Hiding public transport complexity is quite desirable, but using the same preset name seems to add even more complexity because both presets have to be handled differently in view of role and position in the route relations. In addition a common name for both presets would prevent a smooth transition to other or mixed public transport modes.

@bhousel
Copy link
Member

bhousel commented Nov 28, 2017

Hmm, yeah @slhh good points.

What if we made the 2 presets "Bus Stop Platform" and "Bus Stop Position"... platform can be any geometry, and position must be vertex only. For now, we can't enforce that the stop position vertex must be a road.

@slhh
Copy link
Contributor

slhh commented Nov 29, 2017

Some of the approved public transport rules are a nightmare.
We do potentially have the following compliant cases of a bus stop feature:

  1. A vertex on the road representing the whole bus_stop:
  • highway=bus_stop
  • public_transport=stop_position (optional)
  • bus=yes (optional)
  1. A platform node:
  • highway=bus_stop
  • public_transport=platform (optional)
  • bus=yes (optional)
  1. An optional stop position to be used in addition to the platform node of 2.:
  • public_transport=stop_position (mandatory)
  • bus=yes (mandatory)
  1. A platform way or area (can also be node, but not prefered here):
  • public_transport=platform (mandatory)
  • bus=yes (mandatory)
  1. A mandatory stop position to be used in addition to the platform of 4.:
  • highway=bus_stop
  • public_transport=stop_position (optional)
  • bus=yes (optional)
  1. and 5. need to share a preset due to using the same tag, but assigning a preset name which is teaching the user to use it for case 1 and 5, but not for case 3 seems to be hard.
    In general it seems to be impossible to assign presets to all these cases and teach a typical user to use the right one.
    I think we need to drive the community to get things simplified.
    I will discuss some approches to simplify in subsequent posts.

@slhh
Copy link
Contributor

slhh commented Nov 29, 2017

First simplification approch:

The public transport proposal didn't deprecate highway=busstop, but it seems to be designed to do so later.

If we omit/deprecate highway=busstop, the optional public transport tags
become mandatory and we can condense the 5 cases to 2 cases:

  1. A vertex on the road:
  • public_transport=stop_position (mandatory)
  • bus=yes (mandatory)
  1. A platform node, line, or area:
  • public_transport=platform (mandatory)
  • bus=yes (mandatory)

We could call the presets "Bus Stop Position" and "Bus Stop Platform" then.

Unfortunately, there is a drawback in omitting the highway=bus_stop tag. Rendering bus stops based on the public transport tags is quite hard, and currently not supported by the Carto style. We would likely need another change to public transport to simplify this rendering.

@slhh
Copy link
Contributor

slhh commented Nov 29, 2017

Second simplification approch:

If we omit/deprecate highway=busstop for bus_stop with mapped platform, but keep it for the vertex representing the whole bus_stop, we can condense the 5 cases to 3 cases:

  1. A vertex on the road representing the whole bus_stop:
  • highway=bus_stop
  • public_transport=stop_position (optional)
  • bus=yes (optional)
  1. A platform node, line, or area:
  • public_transport=platform (mandatory)
  • bus=yes (mandatory)
  1. An optional stop position to be used in addition to the platform of 2.:
  • public_transport=stop_position (mandatory)
  • bus=yes (mandatory)

We could call the presets "Bus Stop (simplified)" and "Bus Stop Platform", and "Bus Stop Position" then.

The rendering issue would be easy to be solved because highway=bus_stop and public_transport=platform plus bus=yes can both be rendered as a bus stop.

@slhh
Copy link
Contributor

slhh commented Nov 29, 2017

Third simplification approch:

The highway=bus_stop tag is currently defined for nodes only. If we break with this rule, and allow it to be used for lines and areas too, we can always put it on the platform, where a platform is mapped.
There are already 5000 highway=bus_stop tag used on lines or areas in the database, and Carto does already render the tag for areas.

We can condense the 5 cases to 3 cases then:

  1. A vertex on the road representing the whole bus_stop:
  • highway=bus_stop
  • public_transport=stop_position (optional)
  • bus=yes (optional)
  1. A platform node, line, or area:
  • highway=bus_stop
  • public_transport=platform (optional)
  • bus=yes (optional)
  1. An optional stop position to be used in addition to the platform of 2.:
    public_transport=stop_position (mandatory)
    bus=yes (mandatory)

We could call the presets "Bus Stop (simplified)" and "Bus Stop Platform", and "Bus Stop Position" then.

@bhousel
Copy link
Member

bhousel commented Dec 1, 2017

What if we made the 2 presets "Bus Stop Platform" and "Bus Stop Position"... platform can be any geometry, and position must be vertex only. For now, we can't enforce that the stop position vertex must be a road.

I'm just going to do something like this ☝️ It seems easy and I think this matches up with @slhh's third comment. Thanks for kicking off this discussion @nlehuby 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
considering Not Actionable - still considering if this is something we want
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants