In most Yangtze Delta cities, buses usually operate in three separate networks: City Buses (城市公交), Suburban Buses (城乡公交) and Town-Village Buses (镇村公交). Some of those do operate outside the city boundaries, which are classified as Intercity Buses (毗邻公交), they can also be a City Bus Line, a Suburban Bus Line or a Town-Village Bus Line.

There exist a group of enthusiasts who spend their weekends from one city to another city purely by buses or subway lines, such a route is possible by benefiting from the tremendously complicated and connected bus network of Yangtze Delta Cities. I’m one of those enthusiasts who usually spend my entire weekend on buses and subway lines from city to city, as such I do exactly have “local knowledge” that I could benefit others if I can draw these lines on OpenStreetMap. In such a circumstance I figured out that there isn’t a proper way to mark the type of a bus line. After a long discussion with some of the experienced users, I decided to add an unofficial tag network:route:bus:type to tackle this special issue around Yangtze Delta.

For values of network:route:bus:type I would temporary provide city, urban, suburban, town, intercity as five valid options, further extension is possible.

  • city (城市公交), suburban (城乡公交), town (镇村公交) options are used when 3-level bus networks exist in such an area.
  • urban (市域公交) option is used when there’s only a single bus network, this option should not use on it’s own since you don’t really need it.
  • intercity (毗邻公交) option is used for bus routes that operate outside the city boundary limit, this is a optional tag and should be used with the other options.

1. Route 宜兴城乡公交225 is a suburban line and do have a stop outside the city boundary limit, we set network:route:bus:type=suburban,intercity to it.
2. Route 常州公交34 and 无锡公交26 are city, suburban, town-village mixed line and have stops outside the city boundary limit, since both city only has a single bus network, we set network:route:bus:type=urban,intercity to them.
3. Route 江阴-常州 is a purely intercity line and operates at two different cities, as such we only set network:route:bus:type=intercity to it.

When applying network:route:bus:type to a route, public_transport:version must set as 2 to indicate PTv2 is used. Then set public_transport:v2ext as yes to explicitly declare that this line is using unofficial extended features. Only set network:route:bus:type to the proper value when both of the public_transport tag is set.


After hearing advises and suggestions from the comment section, this flag is now deprecated and being replaced. Further more information will be updated soon on a separated article.

Location: 宜城街道, Yixing, Wuxi City, Jiangsu, 214200, China

Comment from Herman Lee on 15 May 2022 at 07:49

Can you explain how to distinguish City Buses, Suburban Buses and Town-Village Buses taht you metioned. “3-level bus network” is a little bit confused for me.

Comment from Hezza Fezza on 15 May 2022 at 08:43

I personally don’t like the :-type tags. What about the simple bus_route_type as tag name?

Comment from Kovoschiz on 15 May 2022 at 16:30

There was already (most of it needs to be improved); and or for railways.

Route is route. Network is network. Slightly mismatching to put them together. Using network:route:*= (not to mention the pitfalls of *:type=) makes me think the network is within a city or intercity, rather than only a route. =city, =urban, and =town are unclear. A general problem with the =suburban terminology is it is unclear whether the route is radial city–suburb, or circumferential or local within the suburbs only. (or even cross-city suburb–city–suburb)

Comment from Kovoschiz on 15 May 2022 at 16:50

If a rural route crosses the municipality border slightly, tagging it as =intercity looks misleading as a true city–city route. As seen in your example 1 and 2, this leads to a mix of them; and semi-colon multi-value is something to be wary of.

Something like designation= on roads for the official classification of routes would be nice, to directly tag *=城市公交 etc. For networks, there is a network:area= in the wild to bridge network=*cn for non-motorized modes, hierarchical eg =JP:national for roads, and branding eg network=JR for transit.

For a tentative local-only solution, suffixing *:CN-SH= is possible.

Comment from ToniE on 20 May 2022 at 11:27

What about using route:category with values normal, intercity, metro, express, suburban, …

Login to leave a comment