Railway=station as an area?

The presence of points/switches at a station does not necessarily mean that trains can meet/pass there. An industrial track freight station in the US with a non-clearing spur (i.e. a spur off a fast CTC mainline that lacks leaving signal or electric lock protection) would be an example of a place where you can’t have trains pass despite having a switch and a track to do it with.


Indeed, I find it very odd that Punt Muragl Staz is a different kind of station from Celerina Staz. The latter has a small siding, but no ability for trains to pass.

Many other RhB stations are unattended request stops, as do numerous stops on lines in the Scottish Highlands, which conform reasonably with original railway usage, are all tagged railway=station. As presence or absence of switches (or branching of railway tracks) can be ascertained with relatively simple queries, it looks as though railway=halt is not a particularly useful tag.

Until recently my local station was Furze Platt, which was, and largely still is, a classic halt in both the original UK sense, and the DACH OSM sense. Indeed it was originally called Furze Platt Halt (only renamed in 1969). The fly in the ointment is that it has a lot of passengers (~180k pre-covid), and consequently also has a ticket office open in the morning weekday rush hour.

Thank you for all the replies so far!

My final suggestions would be the following then:

If you have any further thoughts on these, please share them!

1 Like

im deutschen Forum gab es vor fast 10 Jahren die gleiche Diskussion und soweit ich verstanden habe, begann dies mit der gleichen Idee, aber das Ergebnis war dann ein anderes.

Another good corner case to consider is the Amtrak station at Winter Park – there is a turnout there (East end of Winter Park siding), but it’s not part of the Amtrak station! (The infrastructure owner on that line has their own notion of a “station” at Winter Park that has nothing to do with the Amtrak station there.)

Thank you very much for pointing it out, I was not aware of that discussion!

The decision there was the following:

To sum that up in English, if I understand it correctly:

  • Stations should remain tagged as railway=station nodes
  • The station area (defined by local railway regulations) should be tagged with landuse=railway
  • This area should be linked to a public_transport=stop_area relation.
  • Objects tagged with public_transport=platform, railway=stop, railway=subway_entrance, landuse=railway, building=train_station and railway=station or railway=halt should be added as members to this relation.

I see their point—this is already a much better idea than mapping stations as railway=station areas because relations can have dedicated members which could include all infrastructure elements of a station.

My only concern is that the public_transport=stop_area wiki page defines the tag’s purpose as

…to identify all of the features associated with a public transport interchange or part of one.

So this cannot be applied to rail yards without passenger service, right? Because I think having a connection with infrastructure elements at those stations would also be important.

I think I’ve found the answer on the OpenRailwayMap tagging page:

Operating site (relation)

The associated components of an operating site, such as platforms, buildings, and stop positions. The tagging is based off of stop_areas in the Public Transport schema, but is extended to cover non-public transit operating sites.

It says that railway=facility should be used for these operating sites without the type=public_transport and public_transport=stop_area tags. So I think this question is solved.

I would like to suggest extending this recommendation to add all railway=* objects (incl. railway=switch and railway=crossing) of that operating site as members to the public_transport=stop_area or railway=facility relation linked to their area in order to enable querying all railway operating site infrastructure elements.

So, if I understand it well, the common tags used on railway operating sites could be roughly summarised as the following (from a railway perspective):

  • railway=station and railway=halt are used on nodes to indicate the center of a railway operating site.
  • landuse=railway is applied on all areas of land used for railway operation or supporting it. A railway operating site should have its own area—marking its station boundaries—tagged with landuse=railway (see Kőbánya-Kispest).
  • public_transport tags only apply to public operating sites.
    • public_transport=station is used on all public stations. If the station is a railway operating site, it’s used on the same object as railway=station or railway=halt is (see Budapest-Kelenföld).
    • public_transport=stop_area—together with type=public_transport—is applied on a relation and used for grouping all objects (incl. objects tagged with railway=* or landuse=railway) at the area of that railway operating site together as members of the relation (see Hegyeshalom).
      • If the station is not public, railway=facility (without public_transport=stop_area and type=public_transport) is applied on a relation (see Braunschweig Rbf) with the same kinds of members.
    • public_transport=stop_area_group—together with type=public_transport—is applied on a relation and used for grouping public_transport=stop_areas at the same interchange as members of the relation (see Berlin, Hauptbahnhof).

If this seems right to you, I’d like to restore the old tagging scheme on the railway=station Wiki page and adjust all these tags’ Wiki pages to match the guidelines mentioned above.

This would be overcomplicating things by requiring a relation to understand the extent of a station, and is not what is done in many places. It would imply that 2 areas tagged with the same tag “landuse=railway” would be used for both, land along the tracks belonging to a railway, and railway stations, only differentiated by membership in a public transport relation, i.e. only applicable to public transport railway stations. You changed the current illustration in the wiki which ignores the possibility of a railway=station area, this is in opposition with the textual definition on the very same wikipage.

1 Like

Could you please elaborate on why this solution would be overcomplicated?
I don’t really see any other option to enable querying all infrastructure elements of a railway operating site. And if railway operating sites have a public_transport=stop_area relation including a landuse=railway area as a member which marks its boundaries (rendered exactly the same way by OSM Carto as a railway=station area), I don’t see the purpose of having an additional area tagged with railway=station.

Only roughly 7% of correctly used railway=station tags are applied on areas. I see that it’s still a lot of objects, but my point is that the most railway=station tags (by far) are currently applied on nodes—including both reference stations on its Wiki page.

Yes, public_transport=stop_area is only applicable to public railway operating sites, but railway=facility can be applied on non-public railway operating sites:

Yes, that’s because I also suggested changing the Wiki page to discourage applying railway=station on areas:

But I’m open to any counterarguments!

  1. landuse=railway can’t be used for underground, or elevated stations spanning other land. building=train_station is insufficient, and there may be multiple structures.
  2. If you say a landuse=railway is “marking its station boundaries” , why shouldn’t that be railway=station ?
  3. Why should public_transportation=station be restricted to points due to combination with =station and =halt for rail alone?

I have never heard of railway=facility and it doesn’t have a wiki page, I am not sure what it is thought for, although it has 9000 uses (almost all on relations). https://taginfo.openstreetmap.org/tags/railway=facility#map

There are more than 7000 railway=station on ways, I do not see a benefit in discouraging its use, rather we should discourage representing something as big as a railway station, with often several entrances, fenced off etc., as a single node. What is the benefit of a node? I do not believe we need to enforce public_transport=stop_area relations just to be able to map the extent of a train station.

You can propose to change the system, but just applying the changes to the wiki is not the right way to achieve it, the wiki should document what is actually done, and railway=station areas are a valid and established way to map.

I have tried to use it in my country. But it is quite broken.

  • Almost all (~98%) are with type=public_transport . =facility is then a duplicate with =stop_area + train=yes for the feature, and non-formal to type=public_transport randomly throwing in a feature tag.
  • For the rest, all except 24 are either invalid lacking type= , a random type=railway , or a type=route mistake for some reason.

The latter should use type=site , but then railway=facility would be debatable. Either it should use type=site + railway=service_station as that is available, following power= (not exact comparable due to lack of point or area for distributed wind farms), heritage=, and =historic ; or site=railway following site=parking , to avoid duplicating railway=service_station , and posing as another railway= feature .
There is another railway=site that should be looked into. With dubious operating_times= that could simply be service_times= if not opening_hours=. OpenRailwayMap/Tagging - OpenStreetMap Wiki
Anyway, type=site can have label and perimeter that would facilitate representation. The point can be label . It’s not a must to bind certain feature tags to the object topology, as =station or =site for points, and =facility for relations. A railway=station area as perimeter could be interpreted as non-exact, or the broadest extent of the station.
For station, I tend towards using railway=station + public_transport=station for passengers, and railway=site / railway=facility for the rail operations area. There should be consistency with other public_transport=station , at least =bus_station on areas (=ferry_terminal is another mess). As for =service_station , I’m not familiar.
landuse=railway is a homogeneous statistical/taxonomic classification paint. It isn’t a feature. It needs railway=site / railway=facility or something to show what it is exactly here. Relating in =public_trasnport or =site only is not a complete solution.
Much of what OpenRailwayMap suggests can use some public scrutiny.

I just reverted the recent modification of the image and put back the reference to the discussion here.

1 Like

I think railway=station and railway=halt have the important role of indicating the non-geometric, practical centre of a railway operating site.

Let’s take the small railway club station Sprockhövel - Haßlinghausen for example, currently mapped as a railway=station area:
Sprockhövel - Haßlinghausen, railway=station area centre marker comparison

(Platforms there are incorrectly tagged as railway=station areas but it doesn’t make a difference in demonstrating the effects of rendering objects tagged like this.)

OSM Carto renders the station marker at the blue square and iD shows its pictogram at the orange dot. But the practical centre of the station is at the green dot.

I don’t think about this as an issue for smaller stations like this, but when you take Berlin Hauptbahnhof for example—with a shape similar to Sprockhövel - Haßlinghausen’s—problems might start to emerge: the station marker might be rendered away not only from the practical centre but also from any public area of the station, making the marker less helpful.
In the case of Berlin Hauptbahnhof (copied to OpenGeoFiction as a railway=station area) the marker would be rendered somewhere at the western end of the platforms:

Therefore I think the only practical solution for mapping railway=station and railway=halt is applying them on nodes. @Nakaner, spth and @rurseekatze came to the same conclusion at the OpenRailwayMap Mappingwochenende in 2014:

Thank you for pointing this out! Although both versions (1 and 2) of the illustration only depict a simple railway station, I see your point.

I think in the case of elevated stations e.g. man_made=bridge could be added to the public_transport=stop_area or railway=facility relations even if they span greater than the station boundaries.
And underground station boundaries could be mapped as an area tagged with tunnel=yes and area=yes, also added as a member to one of those relations.