gravitystorm / openstreetmap-carto

A general-purpose OpenStreetMap mapnik style, in CartoCSS
Other
1.54k stars 823 forks source link

idea: render local_ref instead of name for bus stops #4851

Open k-yle opened 1 year ago

k-yle commented 1 year ago

If a bus stop has local_ref, it would be more useful to render the local_ref instead of the name.

This is useful because:

This is somewhat related to #4800

Google maps has recently made this change in some countries, and it's very useful.

Current Situation Ideal Situation
![image](https://github.com/gravitystorm/openstreetmap-carto/assets/16009897/13a66f4e-aa50-4211-adf7-dfd9aac7eb13) osm carto renders the name `Akoranga` several times ![image](https://github.com/gravitystorm/openstreetmap-carto/assets/16009897/546373b3-e59a-4aa8-8b9b-91963e34136c) google maps renders the name `Akoranga` once, and renders `A`/`B`/`C` for each stop.
![image](https://github.com/gravitystorm/openstreetmap-carto/assets/16009897/234c00da-77e6-46cb-9505-2aba7f0b0ab1) ![image](https://github.com/gravitystorm/openstreetmap-carto/assets/16009897/61233662-e8a6-4cd4-bb77-6903bb3f4c55) ![image](https://github.com/gravitystorm/openstreetmap-carto/assets/16009897/1176d386-ce44-404b-97cf-58ebe716302c)

Ideal rendering in OSM Carto:

image

image

imagico commented 1 year ago

This is similar to #4662 - discussion there is largely also relevant here.

highway=bus_stop + ref=* has 637k uses highway=bus_stop + local_ref=* has 135k uses

and there does not appear to be consensus among mappers about a semantic difference between ref=* and local_ref=* on highway=bus_stop or if this belongs to highway=bus_stop at all or to public_transport=stop_position. It also appears that the vast majority of uses of the tag in many regions are trivial values like '1' (or '2' for direction separated bus stops) without those values being of practical use locally (people refer to the specific stop by direction rather than through a code) - see also previous discussion in https://github.com/gravitystorm/openstreetmap-carto/issues/4662#issuecomment-1224096190. ref:signed - which could help detecting those cases - is not used widely.

Like with #4662/#4800 it would be good to know about what mapping conventions exists in that field world wide (which are evidently varying) to see if something can be identified as broad consensus that we can support in rendering in a meaningful way.

Addition: I just saw that this requests to replace name rendering with ref rendering - that would require evidence that bus stops are widely referred to by ref rather than name (which seems unlikely).

daganzdaanda commented 1 year ago

For comparison, the ÖPNV (public transport) map layer shows the local_ref at the bus station you linked: https://www.openstreetmap.org/node/4687856163#map=18/-36.79713/174.76074&layers=O image It also renders ref the same way.

Also, see the Verkehrskarte (traffic map) style: https://www.openstreetmap.org/#map=18/-36.79713/174.75980&layers=T image This style does not render ref.

Found an example with both ref and local_ref: https://www.openstreetmap.org/node/1246670063#map=18/48.59003/7.74104&layers=O It seems the style will prefer the local_ref, and drop the ref.

In my opinion, Carto style still needs to show the name of the stop. For most stops, it would not help if there were only the short (local)ref. We could maybe get a label that has both the name and the (local)ref in a new line.

k-yle commented 1 year ago

[...] and there does not appear to be consensus among mappers about a semantic difference between ref=* and local_ref=* on highway=bus_stop [...]

This seems like the biggest obstacle that will prevent this idea from working effectively, I had a look on overpass and some cities have some rather strange examples...

Also, see the Verkehrskarte (traffic map) style:

Interestingly, this map style does not render local_ref=* if it contains a full word or several words. I'm not sure how they decide when it is appropriate to render local_ref=*... Is this map style open source or is there a way to ask the authors questions?

RedAuburn commented 3 months ago

How about rendering both: local_ref=M name=Carto Road

would be rendered with the name: Carto Road (M)

this is how OrganicMaps, OSMAnd, and many other map styles render it.