Ward boundaries for 2023 delimitation in Bengaluru

In 2023, the BBMP (municipal administration of Bengaluru) did a ward delimitation exercise, after which the new boundaries for the 225 wards of the city were notified.

As of now, OpenStreetMap has the ward boundaries from 2009. These were added back in early 2018 by the user chandusekharreddy. I am planning to delete these old 2009 ward boundaries, and add in the new 2023 delimitation ward boundaries. However, this will be quite a large change (~22k deleted objects and ~26k added objects). If there aren’t any issues raised by the community in this thread over the next couple of days, I’ll proceed with this change.


This is great, thanks Vonter. Could you describe your process for adding in the new ward boundaries. This will help for other cities and for future.

One thing I’ve noticed with the current ward boundaries is that they share nodes with roads and buildings. How can you ensure that doesn’t happen for the new boundaries?

Could you describe your process for adding in the new ward boundaries.

The first part is finding an official source for ward boundaries. Luckily for Bengaluru this was easily available. On opening the official ward delimitation website, the browser downloads the ward boundary GeoJSON in the background from this server.

Before using this GeoJSON in JOSM, some preprocessing is needed first. The preprocessing steps that Nikhil suggested on the Telegram group for working with village boundaries also work for handling ward boundaries:

  1. Open the original GeoJSON on mapshaper.org, and use the innerlines command to break down the polygons into linestrings of shared boundaries
  2. Open the original GeoJSON in QGIS > Dissolve into a single polygon > Convert polygon to line
  3. Add in the mapshaper.org GeoJSON in QGIS > Split with lines (using the innerlines GeoJSON as input)
  4. Merge the layer from step 3 and the innerlines layer into a single layer

The output from step 4 should be good to start working with in JOSM, but here it gets a bit tedious because these steps have to be repeated for each ward:

  1. Manually select the ways that form the boundary of the ward.
  2. Create a new relation, with all the ways in step 1 as members with role outer
  3. Add in the remaining tags to the relation, like name, boundary, type (and any others that may be relevant, like name:kn for Bengaluru)

With this it should be good to upload and add to OSM. But if the city already has old ward boundaries on OSM, another step would be deleting the old ward boundaries. Depending on how exactly the boundaries are changing, some of the parent relation could be reused rather than deleted completely. For Bengaluru, those would be the Bengaluru parent relation and the zone relations

One thing I’ve noticed with the current ward boundaries is that they share nodes with roads and buildings. How can you ensure that doesn’t happen for the new boundaries?

As far as I know, there’s no way to avoid this completely. It might be possible to setup an OSMCha filter to find changesets which alter/delete a node/way/relation that’s part of the ward boundary data. Then anytime a road/building incorrectly gets a shared node with the boundary, it should be simpler to detect. However, that still needs a manual fix/revert.

1 Like

As Heinz mentioned on the Telegram group, it seems that ward boundary tagging has not been standardized across the country:

  • In Kerala and a few cities like Nagpur, boundary=local_authority is used
  • In Delhi, Mumbai, Hyderabad, Chennai and Bengaluru (as of now), boundary=administrative is used

The suggested tagging scheme is boundary=local_authority according to the Local Government Boundaries Wiki page. Additionally, Kerala has the most ward boundaries mapped by far, so the majority of ward boundaries in India are mapped with boundary=local_authority.

So I’ll be using boundary=local_authority as well for the new ward boundary mapping in Bengaluru.

1 Like

The 2023 ward boundary mapping is complete: Relation: ‪Bengaluru‬ (‪7902476‬) | OpenStreetMap

The above relation’s child elements include the 8 zones, and the grandchild elements include the 225 wards.

A small part related to cleanup is pending, but this can be done over a period of time. Like reueld mentioned, lots of the old boundary ways had nodes shared with other objects. All these old boundary ways should be cleaned up, but this needs to be done with care so as to not incorrectly delete nodes shared with other objects. For example, this way has a node shared with Hosur Road: Way: 550598037 | OpenStreetMap

I’ve added a note tag (note=Old BBMP ward boundary way. Needs to be deleted with care to handle nodes shared with other objects.) on all such ways which belonged to the old ward boundary ways. This should make it easier to identify ways that are no longer needed but may not be straightforward to delete.