OpenStreetMap logo OpenStreetMap

عثمان ਉਸਮਾਨ bgo_eiu's Diary

Recent diary entries

ہُݨے ورتیا، مین دُرُست چاہیدے اے۔ پر حالیہ ایس ویب سائٹ ‘تے شاہمکھی انواد چڑھایئے، پنجابی لئی سیٹنگاں ‘تے تسیں بولی دا کوڈ «pnb» پا سکدے اے۔ (آئی ڈی ایڈیٹر لئی، ایہہ «pa-PK» پا سکدے۔) روزنامچے وچ گرمکھی یا شاہمکھی وچ نہیں لبھیا، پہلا لکھت لئی ایس لیکھ چھپدا۔ خبرے کوئی لفظاں پڑھن‌گی اے…

A number of transit agencies in the greater Baltimore region have overlapping service areas, and as a result some stops are shared between operators and/or networks. Typically what this looks like is multiple signs will be fixed to the same post for the different services, and usually the stop will have a different reference number within the systems it serves. If there is a shelter, it is operated by just one of the agencies that uses the stop.

Locally, the Maryland Transit Administration (MTA) stops are the most thoroughly mapped, and functions as the “primary” operator for the region, with connecting agencies often functioning as supplements to it rather than alternatives. In auditing the bus stop information on the map, I had initially thought adding shared stop information to a highway=bus_stop node would involve using operator namespaces like ref:MTA= so that it is clear which agency uses that stop number. The distinction between a shared stop node and two different stop nodes for overlapping services seems like an important one, as in some cases an overlapping service can have a stop very close to another rather than sharing one. This can make a difference in the logistics of connecting between services or assessing some of the finer details of bus stop placement.

A bus stop shared by four different operators at Washington Monument in Baltimore, Maryland, USA A leaning tower of bus stop signs at Washington Monument in Baltimore

However, on further consideration, this proved to be more complicated than I had assumed. How would you decide the namespace to use, and make it clear whether or not that namespace refers to the operator or the network? Would it make sense to re-tag non-shared stops with the name space for consistency? What do you do if the different services have different names for the same stop? Although some existing local tagging schemes use operator namespaces for shared stops, it seems like it would be a challenge for data consumers to utilize this information. I am not aware of any that know how to read information about a stop coded in this way.

The tentative approach I am considering is based on the idea that bus stop nodes are an abstraction with some similarities to address nodes. Address nodes may have ranges of house numbers in them, in the same way bus stops may have a list of route_ref designators that share a service, but it would be considered wrong to combine address nodes that have different street names, postcodes, or city names. (These can occur in the same building or place, but would still be added separately.) Though they share a location they are still different features as they have incompatible properties. Shared bus stops could be placed as separate nodes for different services in a row that is perpendicular to the way the routes run on.

The finer position of the bus stop node does matter because it makes a difference for how the bus stops and boards at a location, and locating a stop on the ground within a block can make a difference from routing. (For example, proximity to a crossing can impact the time it takes to get to.) The logic behind putting them in a row perpendicular to the way the routes are on is that the boarding position is preserved while the nodes do not have to be on top of each other. The position of a bus stop sign along the narrow width of a sidewalk is not completely immaterial but it is not as significant as the position along its length - we don’t literally put stopping positions adjacent to the roadway either so this is kind of similar.

Screenshot of shared bus stop for Maryland Transit Administration and Baltimore County Loop at Campus View Drive & Sheppard Pratt Hospital in Towson, MD

This was a stop where I think it made sense to do this. The Sheppard Pratt Hospital Eastbound stop in the suburb of Towson, Maryland had been used by the Maryland Transit Administration’s Baltimore area local bus network alone until late 2021, when Baltimore County launched their own bus transit operation. The new Baltimore County Loop shares this stop now, but has a different sign on the same post, a different ref number, and even a different name within the system. There is no perfect place to put them but I just positioned them with the bus stop sign sandwiched in between so they are still at the same point on the length of the sidewalk. This approach seems more likely to be understood as a shared stop configuration by passengers and existing data consumers. These are both in the same stop area relation, so if you wanted to determine where shared stops are and what their operators are you could refer to that instead of trying to parse a more unwieldy shared tagging scheme.

Location: 39.392, -76.620

I intend to make a more concerted effort to review Baltimore’s public transit mapping on OSM, but I wanted to document this observation so that I do not forget to work on it after that.

I had been operating under the incorrect assumption that Washington, DC would be more thoroughly mapped than most American cities across the board. That was not a well informed assumption - almost none of the DC area’s transit is on the map.

DC area routes

DC area stops

Some of those isolated points are ones I added on a former account after I used them and noticed individually that they were missing.