Use of `admin_level` on `capital`s

This is only referring to the numeric values being shared with the capital=* key. It isn’t saying you should tag the place=city node with admin_level=#.

On place nodes, admin_level=# seems to be essentially an alternative to capital=#. The two keys are common at different levels:

Level admin_level=* capital=*
2 210 218
4 753 1,728
6 2,722 9,606
8 6,210 52,594
10 29,598 6,364

admin_level=2 was added to world capitals a long time ago, probably with little if any discussion:

Some of the difference is regional. A lot of the admin_level=# usage seems to be the result of copying the tag from a boundary relation to its label member, sometimes accidentally. This inherently contradicts the old idea of tagging capital=yes and admin_level=#. Any data consumer using that interpretation would think lots of cities are capitals of themselves.

The style originally labeled national capitals based on the undocumented, stagnant is_capital=country tag, then later switched to looking for capital=yes admin_level=2. By contrast, OSM Carto, OpenMapTiles, and Shortbread all look for capital=# (with capital=yes being an alias for capital=2). Development on the Humanitarian style stopped years ago, and the repository is now archived, so I’m not sure we should place much weight on its quirks at this point.

Practically speaking, yes. However, technically, capital=# says the city is a capital (at a certain level of government), and the admin_centre role says what it’s a capital of. We have some similar tagging schemes that bind features to their referents, such as destination_sign relations, but such relations are fairly rare overall.

More renderers support capital=# than admin_centre. By the time database conversion tools added support for admin_centre, it had already gotten thoroughly confused with label, making data consumers pretty reluctant to do much with the role.

For what it’s worth, the U.S. community decided a year ago to tag capital=* comprehensively, decreasing our reliance on admin_centre. We kept these roles for completeness, because some administrative units and their capitals don’t neatly fit into the admin_level=* hierarchy, and because some capitals lie outside the areas they administer.

OpenHistoricalMap also soured on admin_centre because it would force us to duplicate a boundary relation every time the seat of government moves to a different city or the city changes its name or status. Instead, if a data consumer really needs to figure out which city is the capital of a given area in the general case, then it can infer the relationship spatially or using Wikidata. The same could be true of OSM, too, but admin_centre is pretty widespread as things stand. I don’t see the redundancy as being any worse than boundaries versus their label members.