Upgrading Transjakarta Networks to Public Transport V2 Schema
This post was originally published for OpenStreetMap.
I am currently working to improve Transjakarta, one of Jakarta’s major BRT/Busway operators, to comply with Public Transport Version 2 schema in OpenStreetMap, though Version 3 is being purposed.
Before and After map of Transjakarta Corridor 9 route, between Pluit and Penjaringan bus stops
Legacy Tags that I’d like to keep for compatibility:
amenity=bus_stopfor PTV1 compatibility on bus stationscorridorXX=yes: assigns which Transjakarta corridors are served, such ascorridor9=yesfor Corridor 9 andcorridor12=yesfor Corridor 12 (see Implementation Notes if you are a developer utilising this tag for queries)- HOTOSM InAWARE tags
network=Transjakarta, now also reinforced withnetwork:wikidataandwikidatavaluesshelter=yesshelter_tj=yes(see Implementation Notes if you are a developer utilising this tag for queries)
Things I REMOVED
service=TransJakarta, since this is unacceptable by Osmose and other QA tools (see Implementation Notes if you are a developer utilizing this tag for queries)
New things that I added
bus=yesto meet PTV2 requirements for bus- Route relation-specific additions:
- New route relations will be added for Corridor sub-routes (e.g. Corridor 1A, 9M, etc.), night services (e.g. M1 for Corridor 1; though I’ll consult with other OSM Public Transport implementations in other places)
- Duplicating roads since many Transjakarta networks operate on one-way roads
network:wikidata=Q1671143for Transjakarta, then add Wikidata values for each route relation, e.g.wikidata=Q12492249for Corridor 5public_transport:version=2to enable JOSM and Osmose debugging
- Shelter/station-specific additions:
- Stations may now be represented as a Relation for those which have split platforms and/or multiple objects in OSM, such as in some Corridor 9 stations which are split by toll roads/expressways
- Transit-Oriented Development (TOD) areas are now represented as a separate Relation to connect multiple stations serving different networks
covered=yes, since Transjakarta stations are fully covered (in conjunction toshelter=yes)departures_board=realtimesince all Transjakarta stations (except Metrotrans, Miktrotrans, and Royaltrans services) have a live bus timetable, which can also be accessible through API at http://api.jakarta.go.idpublic_transport=stop_positionandpublic_transport=platform, see PTV2 on OSM wiki for specific implementationsmoking=nodue to government laws, though not necessarily applied to all stops and stations across Jakartawheelchair=yes/dedicated/partial/no(optional)
Implementation Notes (for apps and services)
- Please use the Route Relation instead of
corridorXX=yesfor network queries. After checking on taginfo.openstreetmap.org most ofcorridorXXtags are only used in Indonesia. - Additionally, you may include hard-coded Relation IDs which belong to Transjakarta network.
- Please use
highway=*and Transjakarta Route Relation IDs instead ofservice=TransJakartato query roads which belongs to Transjakarta, as some parts of the routes do NOT have a separate road (or Kassel Kerbs) - Please use Transjakarta Route Relation objects with
role=platformorrole=stop_positioninstead ofshelter_tj, as some Transjakarta (especially Royaltrans and Metrotrans) networks do stop at regular bus stations.
