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

Render public transport platforms and stops (new scheme, relation-free implementation for now) #311

Open
stefanct opened this Issue Jan 12, 2014 · 39 comments

Comments

@stefanct

stefanct commented Jan 12, 2014

Since supporting the new/alternative tagging scheme of public_transport=* completely is not trivial due to the heavy use of relations, let's start with some easy bits:
#134

That is: rendering of public_transport=stop_position (like railway=tram_stop i.e. a small blue square, or like highway=bus_stop (if bus=yes but no other transports are tagged) and public_transport=platform (like railway=platform for areas and ways, and maybe shelters for nodes with shelter=yes?).

@kugelfiesch

This comment has been minimized.

kugelfiesch commented Jan 30, 2014

+1

@AndiG88

This comment has been minimized.

AndiG88 commented Mar 22, 2014

Is just found this. Are there any plans to make this happen?

@wolfbert

This comment has been minimized.

wolfbert commented Apr 20, 2014

I support this.

@pnorman

This comment has been minimized.

Collaborator

pnorman commented Apr 27, 2014

#311 has some tag suggestions.

@sabas

This comment has been minimized.

sabas commented Apr 27, 2014

public_transport=platform should be rendered as an area.
Osmose reports as an error the area=yes on every platform and when someone fix it the renderer draws the platform as a closed area.
cc: @frodrigo

@PolyglotOpenstreetmap

This comment has been minimized.

PolyglotOpenstreetmap commented Jun 19, 2014

I'm sticking my head in the sand and give up in despair. To please JOSM's validator I'll tag bus stops with public_transport=platform, bus=yes and to get them rendered I'll double tag them with highway=bus_stop.

All 70000 of them for one country alone.

I like the new scheme for public transport. It makes sense to me, but apparently not for the people who work on the rendering side of things. I started out holding my breath and tagging simply highway=bus_stop, but then JOSM does not assign roles automatically and the valdidator complains, so since a few months I'm filling the DB with redundant data. So be it.

Jo

@matthijsmelissen

This comment has been minimized.

Collaborator

matthijsmelissen commented Jun 19, 2014

We have around 400 open bugs, and only a handful of people working on the code. It might take some time before things get fixed, but that doesn't mean we believe things 'don't make sense'. If you would like to help speed things up, feel free to write a pull request.

@dieterdreist

This comment has been minimized.

dieterdreist commented Jun 20, 2014

2014-06-19 19:29 GMT+02:00 PolyglotOpenstreetmap notifications@github.com:

I like the new scheme for public transport. It makes sense to me,

It solves some problems and defines complex mapping schemes which allow to
insert highly detailed information, agreed. On the other hand in the case
of bus stops it doesn't improve the situation IMHO, rather it requires 2
tags what can be expressed without information loss with one in the old
scheme.

@pnorman

This comment has been minimized.

Collaborator

pnorman commented Jun 20, 2014

👎 to this. Encouraging a less-common way of tagging bus stops only hurts everyone trying to use the data.

@PolyglotOpenstreetmap

This comment has been minimized.

PolyglotOpenstreetmap commented Jun 20, 2014

We can just keep tagging them redundantly then. Everybody happy, except maybe the people who backup the data or need to transfer the lot. But that's what we have data compression for, I guess.

Now I need to go find that one bus stop where I only put public_transport=platform, bus=yes as a test case and add highway=bus_stop to it after all.

I had hoped that moving to the new rendering scheme would resolve this, but apparently not. Maybe it's a good idea that somebody amends the wiki page about the 'new' scheme for tagging public transport then to indicate that you can try to use it all you want, but nobody cares if you do. And if you try to use exclusively the 'new and improved' scheme, your data won't be rendered.

Cheers,

Jo

@matthijsmelissen

This comment has been minimized.

Collaborator

matthijsmelissen commented Jun 20, 2014

@gravitystorm's comment in the substation discussion probably also applies here:

But changing tags has much larger consequences than changing whitespace, or changing a variable name. It is, more or less, our external interface to OpenStreetMap data, and have a look to see how much ABI breakage in the kernel is frowned apon. If we change a tag, then every system that uses that tag needs changing too. Every installation of openstreetmap-carto needs updating. Every customised fork of openstreetmap-carto needs updating. Every stylesheet that uses the original tag needs updating, and every cartographer needs to find the time to investigate and make the changes. And every server that hosts any copy of those stylesheets needs updating. And every customer support request from a user of a map using OpenStreetMap data where their maps are missing some features needs investigating, and every manager needs to figure out where all these man hours are going.

@sb12

This comment has been minimized.

Contributor

sb12 commented Jun 20, 2014

I like the public_transport scheme and use it a lot. It's great for detailed tagging of platforms, bus stops and stations, and it looks also great on special purpose maps (e.g. http://www.öpnvkarte.de/).

BUT: It's a night mare for general purpose renderers where a single icon of a bus in the centre of the bus stop would be sufficient. There are a lot of questions and issues coming up:

  • Where do we want to render the symbol (on the platform or on the stop position or in the middle of the stop_area)? (see #435)
  • How do we tell if it's a bus stop, a tram stop or a train stop?
  • How do we handle the stop_area relation? How to get the names and other details from the relation?
  • We need many additional keys in the database (public_transport, bus, train, tram, light_rail etc.)

BTW: Do you know any other renderer that supports the public_transport scheme? How do they solve these issues?

It's also difficult to handle for a beginner who just wants to add the bus stop in his town or when you don't know exactly where the platform or stop position is.

And I think this complexity is the reason, why the public_transport is not accepted as well as you want to.

I don't understand why the complex public_transport scheme needs to replace simple tags like railway=station and highway=bus_stop. Actually I can't find any place in the wiki where it is recommended to not use highway=bus_stop. In my opinion public_transport should extend but not replace highway=bus_stop.

@matthijsmelissen

This comment has been minimized.

Collaborator

matthijsmelissen commented Jun 20, 2014

Does the public transport layer handle the new scheme?

@AndiG88

This comment has been minimized.

AndiG88 commented Jun 21, 2014

Where do we want to render the symbol (on the platform or on the stop position or in the middle of the stop_area)?

You have the same issue with highway=bus_stop icon. 10% are actually placed on the street and not at the stop sign. With the public_transport scheme you at least know where it ends up.

How do we tell if it's a bus stop, a tram stop or a train stop?

How do you do it now? railway=tram_stop + buy=yes is basically ignored.
http://www.openstreetmap.org/?mlat=48.36712&mlon=10.89771#map=19/48.36712/10.89771 is just as much a tram stop as it is a bus stop. Maybe we simply should not have a bus icon, but rather something simple like you can see there or some kind of general stop icon, in Germany we for example have this:

We need many additional keys in the database (public_transport, bus, train, tram, light_rail etc.)

We need them just as much now. But as pointed out above we simply chose to ignore combined stops.

It's also difficult to handle for a beginner who just wants to add the bus stop in his town or when you don't know exactly where the platform or stop position is.

Doesn't the platform exactly match the bus_stop?

In my opinion public_transport should extend but not replace highway=bus_stop.

What's the difference between a highway=bus_stop extended with public_transport compared to a stop just tagged with the public_transport schema - apart from the highway=bus_stop (which then would be 1:1: public_transport_platform)?

@matkoniecz

This comment has been minimized.

@kocio-pl

This comment has been minimized.

Collaborator

kocio-pl commented Jul 9, 2014

I agree with AndiG88, but don't know how to make nice quotes here. =} I think highway=bus_stop should be eventually fully replaced (some sunny day), just ask yourself: what type of highway is bus stop?... It was just a dirty hack, probably because there was no evidence we need something more deliberate and consistent at that time.

Now it's a shame to not use the new, properly designed tagging scheme, at least in the main and public transport rendering styles. And I don't mean "burn all the highway=bus_stop!", but for now just promote corresponding public_transport=platform+bus=yes to be the first class citizen in rendering (plus others, as proposed in https://trac.openstreetmap.org/ticket/2798). The code for it is probably straight, but if I would try to write it and test, I want to know it won't be ignored. Is it a fair proposition, or something else is needed too?

@dieterdreist

This comment has been minimized.

dieterdreist commented Jul 9, 2014

Am 09/lug/2014 um 02:22 schrieb kocio-pl notifications@github.com:

what type of highway is bus stop?... It was just a dirty hack, probably because there was no evidence we need something more deliberate and consistent at that time.

I don't see a problem with the highway namespace. For one these are generally tagged on nodes, but even if there was a way (for the "platform") highway = bus_stop this would IMHO be a valid representation for what is actually on the ground and how people would refer to this stretch of asphalt in the real world

@matthijsmelissen

This comment has been minimized.

Collaborator

matthijsmelissen commented Jul 20, 2014

I think waiting areas for buses are too specific to render as area on a general purpose map, especially if these areas consist of not much more than one painted line on the pavement.

Is there an easy way to distinguish between bus and train platforms?

@AndiG88

This comment has been minimized.

AndiG88 commented Jul 21, 2014

I think waiting areas for buses are too specific to render as area on a general purpose map, especially if these areas consist of not much more than one painted line on the pavement.

Most of them are highway=pedestrian anyway. Also thisissue is not really about that. It's more about having some kind of icon for a public_transport= stop.

@dieterdreist

This comment has been minimized.

dieterdreist commented Jul 21, 2014

Am 21/lug/2014 um 01:47 schrieb math1985 notifications@github.com:

I think waiting areas for buses are too specific to render as area on a general purpose map

when it matters the mapper could add highway =pedestrian and area=yes (the latter might be implicit)

@matthijsmelissen matthijsmelissen added this to the New features milestone Aug 18, 2014

@matkoniecz matkoniecz modified the milestones: 3.x - Needs upgrade to mapnik or openstreetmap-carto.style, New features Oct 7, 2014

@matkoniecz

This comment has been minimized.

Collaborator

matkoniecz commented Oct 7, 2014

if bus=yes but no other transports are tagged

public_transport tag is available, but bus is not. So it is impossible to check whatever element is a bus stop. To replace current style, without losing ability do display bus/tram/etc stops in a different ways database change is necessary. (also @gileri)

@matthijsmelissen matthijsmelissen referenced this issue Apr 28, 2015

Closed

Plan database re-import #1504

0 of 6 tasks complete
@ximex

This comment has been minimized.

ximex commented Mar 26, 2016

If i see it right, public_transport=platform isn't rendered yet!? This should be possible without the database reimport.
Or is this here an other problem: https://www.openstreetmap.org/relation/5988332

here should be the right point in the code i think: https://github.com/gravitystorm/openstreetmap-carto/blob/master/roads.mss#L2015
first the definition of public_transport_platform is required, right?

@PolyglotOpenstreetmap

This comment has been minimized.

PolyglotOpenstreetmap commented Mar 26, 2016

The problem is the unwillingness to also add bus/tram/metro/train and whatnot to the rendering DB. I don't see this change happen in the nearby future, it hasn't changed for the half decade we're already asking for this, so you'll have to double tag them as railway=platform as well, even though there are no rails on those platforms. You might consider dropping the 'new' scheme public_transport tags, but then JOSM will not add roles properly if you add them to v2 route relations. So double tagging it is and never mind the waste of bits and bytes.
Jo

@kocio-pl

This comment has been minimized.

Collaborator

kocio-pl commented Mar 26, 2016

If i see it right, public_transport=platform isn't rendered yet!? This should be possible without the database reimport.

I guess not, since the public_transport=* key is currently absent in the rendering database.

@pnorman

This comment has been minimized.

Collaborator

pnorman commented Mar 26, 2016

I guess not, since the public_transport=* key is currently absent in the rendering database.

public_transport is currently in the rendering database.

@ximex

This comment has been minimized.

ximex commented Mar 26, 2016

so it should be possible to add it to render!?

@Rondom

This comment has been minimized.

Rondom commented Mar 26, 2016

As far as I know (should be further up in this issue) keys such as bus, tram etc. are missing

@ximex

This comment has been minimized.

ximex commented Mar 26, 2016

as i see the rendering of a platform is rendered the same for bus/train/... so it shouldn't be required

@PolyglotOpenstreetmap

This comment has been minimized.

PolyglotOpenstreetmap commented Mar 26, 2016

Those public_transport=platform can also be used on nodes and there a different icon is used for bus stops and tram stops.

@ximex

This comment has been minimized.

ximex commented Mar 26, 2016

i thought the icon comes from highway=bus_stop and not from public_transport=platform/bus=yes
and we could only render an area (and way) of public_transport=platform

@matkoniecz

This comment has been minimized.

Collaborator

matkoniecz commented Mar 27, 2016

Yes, public_transport key is available, but bus key is not. So it is impossible to check whatever element is a bus stop. To replace current style, without losing ability do display bus/tram/etc stops in a different ways database change is necessary.

@deubeuliou

This comment has been minimized.

deubeuliou commented May 25, 2016

Hi,

(please note that I'm new to OSM)

I got here because I recently tried to do some janitorial work on a bus line, including using the PTv2 scheme; after doing that, it was pointed out to me that the bus stops I worked on disappeared from the map... It felt like I was breaking something. I do, however, understand how you, maintaining the rendering style, would see the PTv2 scheme decision as not taking rendering concerns into account.

That being said, the way I understand it, there is no need for an additional column in the database. I looked at mapnik and it seems that this issue could be solved by transforming (in the ".style" file) the public_transport=platform + bus=yes combination into highway=bus_stop.

Am I missing something? Maybe this only works with the Lua style files, which you are not using... Could it be worth using them? It can probably solve other future issues.

@dieterdreist

This comment has been minimized.

dieterdreist commented May 25, 2016

sent from a phone

Il giorno 25 mag 2016, alle ore 23:41, David Wagner notifications@github.com ha scritto:

I got here because I recently tried to do some janitorial work on a bus line, including using the PTv2 scheme; after doing that, it was pointed out to me that the bus stops I worked on disappeared from the map

Actually you don't have to remove the highway=bus_stop tag to add ptv2 tags. You should be really careful changing tags, especially if you are new, because there isn't- unfortunately- complete documentation about the tags, and the available docu has sometimes bugs, e.g. the wiki.

@pnorman

This comment has been minimized.

Collaborator

pnorman commented May 25, 2016

Am I missing something? Maybe this only works with the Lua style files, which you are not using... Could it be worth using them? It can probably solve other future issues.

A change to use lua (or changing existing lua transforms) would be an osm2pgsql style change, just like adding columns.

@jojo4u

This comment has been minimized.

jojo4u commented May 27, 2016

After deliberating about the problems of public_transport=platform as a physical feature (platform) and logical feature (waiting area) I came up with a proposal: https://wiki.openstreetmap.org/wiki/Proposed_features/Public_Transport_Platform_no_Infrastructure

Before RFCing it I'd like to ask one question to osm2pgsql savvy:

a) Consider a linear way tagged with

  • highway=platform
  • public_transport=platform
  • bus=yes

After database reload, with the possibilities of this style: Could the way rendered like a platform (based on highway=platform) and with a bus symbol in the centre (based on the other two tags)?

b) Consider a closed way tagged with

  • highway=platform
  • area=yes
  • public_transport=platform
  • bus=yes

Could the area rendered like a platform (based on highway=platform, area=yes) with a bus symbol in the centre (based on the two remaining tags)?

@jojo4u

This comment has been minimized.

jojo4u commented Nov 17, 2016

My question above still remains open and database reload comes closer and closer :)

@nebulon42

This comment has been minimized.

Contributor

nebulon42 commented Nov 17, 2016

My answer to your questions would be that both could be rendered as a platform based on public_transport=platform and bus=yes. The icon could be placed along the linear feature, but you would get repetitions depending on the length of the way. It would be very hard if not impossible to ensure that there is only one icon of any length of line. The icon could be easily placed in the interior of the closed way.

@xamanu

This comment has been minimized.

xamanu commented Dec 28, 2017

Big 👍 for this.

Most people I know (including myself) who map public transport in OpenStreetMap use PTv2 (especially if you want to do something with the data and not exclusively look at OSM-carto) and attach highway=bus_stop to the point where they want it to be rendered in OSM-carto. This has been a practice for years now and unfortunately has led to two parallel existing data schemes. While it is worth mentioning that most of today's disagreements on how to map public transport in OSM is about PTv1 (like if the stop_position or the platform should be tagged with highway=bus_stop, etc..). IMHO PTv1 only makes sense, still, because of this open ticket, all other active initiatives in OSM, which I know, dealing with transport want and rely on PTv2.

@kocio-pl

This comment has been minimized.

Collaborator

kocio-pl commented Dec 28, 2017

What we lack now is somebody who would make the proper code and test it. Could you try to do this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment