I’m considering retagging every town and city boundary in Indiana, replacing admin_level=8 with admin_level=9. The boundaries already have border_type=town or city to establish a soft correspondence with municipalities in other states. Indianapolis would be the only boundary left at level 8:
- Indiana (same as other states)
- —
- Counties (same as counties in other states)
- Townships (same as townships in other states)
- Indianapolis
- Other cities and towns
This change is necessary because of the complex mess that is Unigov: Indianapolis is in nine townships (level 7), and in turn 10½ towns (level 8) are in Indianapolis (the “included towns”). Under Indiana law, towns and cities are peers regardless of county, even in Marion County. With this change, we’ll finally be able to draw the correct Indianapolis city limits. Currently, we depict the included towns as enclaves of Indianapolis, as if they’re all excluded towns.
The downside of this change is that some border towns will compare unintuitively. For example, the city of Union City, Indiana, is much larger than the adjacent village of Union City, Ohio, but the Indiana city would end up with a numerically higher admin_level=* tag than the Ohio village. Arguably both boundary relations should share the same place point, following the Texarkana model, but this approach won’t work for some affected border towns that don’t share a name, such as West College Corner, Indiana, and College Corner, Ohio.
admin_level=9 enjoys somewhat less software support than 8, but major global renderers do support it. Like some less mature styles, OSM Americana only goes up to level 8, so it would need a tweak to add level 9. This would bring in neighborhood boundaries in many cities, so it might be necessary to distinguish Indiana’s level 9s from other level 9s on the server side in OpenMapTiles.