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.

image 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_stop for PTV1 compatibility on bus stations
  • corridorXX=yes: assigns which Transjakarta corridors are served, such as corridor9=yes for Corridor 9 and corridor12=yes for Corridor 12 (see Implementation Notes if you are a developer utilising this tag for queries)
  • network=Transjakarta, now also reinforced withnetwork:wikidata and wikidata values
  • shelter=yes
  • shelter_tj=yes (see Implementation Notes if you are a developer utilising this tag for queries)


  • 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=yes to 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=Q1671143 for Transjakarta, then add Wikidata values for each route relation, e.g. wikidata=Q12492249 for Corridor 5
    • public_transport:version=2 to 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 to shelter=yes)
    • departures_board=realtime since 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.id
    • public_transport=stop_position and public_transport=platform, see PTV2 on OSM wiki for specific implementation
    • smoking=no due to government laws, though not necessarily applied to all stops and stations across Jakarta
    • wheelchair=yes/dedicated/partial/no (optional)

Implementation Notes (for apps and services)

  • Please use the Route Relation instead of corridorXX=yes for network queries. After checking on taginfo.openstreetmap.org most of corridorXX tags 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 of service=TransJakarta to 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=platform or role=stop_position instead of shelter_tj, as some Transjakarta (especially Royaltrans and Metrotrans) networks do stop at regular bus stations.

Mapping Indonesian Payment Systems and Proposal for New Payment Tags

This post was originally published for OpenStreetMap.

This post is neither created nor endorsed by companies involved in establishment of payment systems listed below.

The OpenStreetMap payment: tag allows mappers to tag stores that accept certain payment methods (cash, debit and credit cards, etc.). Currently, the wiki only accepts those payment methods, so now I decided to introduce new ones in Indonesia.

What’s new?

First, let me introduce five new tags: three of them are dedicated to Indonesia’s newly-established GPN (Gerbang Pembayaran Nasional, literally National Payment Gateway). Currently it is a debit card switching network, similar to that of VISA and MasterCard (Maestro). Here, I propose payment:gpn_debit to be used in all merchants accepting GPN debit cards.

The Indonesian government has plans to replace existing payment networks in Indonesia with GPN, so does with credit cards and mobile wallets (e.g. Apple Pay and Google Pay). I am proposing payment:gpn_credit and payment:gpn_qris to be reserved for later use. The latter refers to the QR Indonesian Standard (QRIS) payment, similar to the SGQR system in Singapore.

The rest of these tags are payment:akulaku and payment:grabpay, reserved for Akulaku Pay and GrabPay. Both payment systems are currently used in multiple countries across Southeast Asia. In Indonesia, GrabPay has merged to Indonesian digital wallet app OVO, so merchants using OVO-GrabPay QR code sticker (see below) should be tagged with payment:grabpay=yes and payment:id_ovo=yes.

OVO-GrabPay merchant sticker

There are a bunch of other proposed tags prefixed in id_* (e.g. payment:id_ovo and payment:id_gopay). This prefix is used for payment services operating only in Indonesia, to avoid trademark conflicts with other countries, such as Indonesia’s GO-PAY with GOPAY (Malaysia), GoPay (Czech Republic) and GoPay.me.

A full list of posposed (and existing) payment: tags are available on https://telegra.ph/Konvensi-tag-payment-di-Indonesia-04-19 , written in Bahasa Indonesia to serve as guidelines for Indonesian mappers. Note that some tags might be replaced with payment:gpn_qris once after QRIS becomes functional.

How will users use this data?

On the OpenStreetMap.org website, users can look for accepted payment methods from the node/line/area details. Unfortunately, payment tag details are not available in some OSM clients and the Nomimatim website. Oh, some users might hunt for stores with discounts and cashbacks offered by digital wallet apps (currently this is a real craze in Indonesia).


Note: Some of the payment metadata is incorrect, and the shop was edited before the tag proposal. Major Alfamart stores now accepts cash, debit and credit cards, contactless prepaid cards Flazz (payment:id_flazz), Mandiri e-money (payment:id_mandiri_emoney) and BRIZZI (payment:id_brizzi), as well as digital wallet service GO-PAY (payment:id_gopay).

Besides that, tagging these shops may also be useful for research. For example, a TagInfo search of stores accepting Alipay reveals that the service is accepted outside China to serve international visitors (especially China). As one of the largest countries in the world, having a complete map of Indonesian payment systems could be beneficial for researchers to evaluate the effectiveness of payment services as one of the economy infrastructures in Indonesia.

And for the OSM community, adding new payment: tags from Sabang to Merauke will get them busy again.

Fixing Genting Highlands

This post was originally published for OpenStreetMap.

Changesets: https://www.openstreetmap.org/changeset/65071147https://www.openstreetmap.org/changeset/65071317

Removed 20th Century Fox World (constructed roads)

I reverted the mapping of roads under construction in this area as 20th Century Fox decided to stop the project (and Genting sues them). No, I’m not planning to change the type of Fox World’s area to brownfield, as this case have not been settled yet. However, I might want to improve the mapping of other theme parks in OSM, as other mappers have mapped some with great details. (such as in Universal Studios Japan)

Readjusting First World Hotel towers

Prior to these changesets, the First World Hotel consists of 2 towers: Tower 1 and Tower 3. The building which is named as Tower 3 in OSM is supposed to be Tower 2, as Tower 3 is built as an extension to Tower 2. I have stayed there once, so I also added a cafe in the Tower 3 lobby.

Next, I also adjusted the First World Hotel towers based on the newer DigitalGlobe imagery. Towers 1 and 2 are supposed to be curved, so I added that change to OSM. (You can confirm the shape using the older Bing imagery) As a result, these towers are aligned better towards Genting International Convention Center as well as the SkyAvenue shopping mall.


During the development of 20th Century Fox World, Genting also have prepared a renovation of the First World Indoor Theme Park which will become “Skytropolis”. As the construction of this new the park is almost complete, I decided to add this to OpenStreetMap.

Other things

  • Added more parking lanes near to Genting Grand hotel

A note on previous changesets

This post is a continuation of my previous diary which I considered it controversial. Here are my next plans to fix those issues:

  • First, I am going to resolve where the new First World Lobby paths should actually exit. Even though I have justified this against the old satellite imagery, I will be there to verify the Avenue of Stars exits by next month.
  • Next month is also my next Genting trip (hence I’m motivated to improve Kuala Lumpur International Airport and Genting Highlands prior to travelling), so expect some additions of restaurants and stores starting from Theme Park Hotel to First World, as well as Awana SkyCentral and Genting Premium Outlets at Awana /Gohtong Jaya.