Tagging county seats on boundary relations versus place points

There are two tagging schemes to indicate that a place is a capital or other seat of government: tag the place point as capital=* or add it to an administrative boundary with the role admin_centre. Both approaches enjoy widespread software support, but most data consumers treat admin_centre as a synonym for the label role rather than indicating a seat of government, probably because of historical confusion between the two roles that’s still quite prevalent in the database.

The vast majority of place=* points that represent county seats[1] are currently admin_centre members of boundary relations. Only 48 county seats are detached from a county boundary relation:

However, capital=6 is exceedingly rare in the United States, appearing on only 35 county seats. This contrasts with how only seven state or territorial capitals lack capital=4.

Given that capital=* is much more reliably interpreted as a seat of government than admin_centre, I wonder if there would be interest in adding capital=6 to the roughly 2,700 remaining county seats around the country. Data consumers such as OpenMapTiles, Shortbread, and osm2pgsql would immediately be able to expose this information to downstream software, and data consumers such as OSM Americana would then be able to give county seats added prominence befitting their role in society.

  1. Or parish seats etc. ↩︎


I think that county seats should definitely be tagged capital=6 and also be admin_centre nodes. My only concern would be data validity - lots of wrong stuff seems to end up in the admin_centre role on boundary relations.


Not that anyone is advocating for removing the admin_centre mapping, but just to note: both tags are probably necessary in some cases. Particularly, a county’s admin_centre need not be inside of the county, as is the case with Lake and Peninsula Borough, AK, Albemarle County, VA, and Oglala Lakota County, SD for example. So some counties might end up with 0 capital=6 places within them, or with more than one.


I support this and have added capital=6 to all the county seats in Vermont. Changeset: 151081725 | OpenStreetMap

Yes, this query finds nodes that should be tagged as county seats based on Wikidata’s capital of (P1376) property. The Wikidata item could be mistagged, of course, but it’s an additional positive signal.

1 Like

I went ahead and added capital=6 to all county seats in Texas and Indiana. Ended up restoring some mistakenly deleted place nodes in the process.

I did this for Virginia.

Finished Wyoming, and I think I’m done with SD too (multiple changesets). Is there an Overpass query or something so we can see what we’re missing?

I used a modified version of the queries linked here. I had to do a little more work though because I found that one of Virginia’s county seats didn’t have the admin_centre role, so you’d have to double check that.

Yes, we can straightforwardly query Overpass for all the capital=6 nodes in the U.S.:

However, this doesn’t tell you where the county seats should be mapped. We can alternatively query for admin_centre members of county boundary relations lacking capital=*:

Still, this query is dependent on admin_centre usage, which isn’t comprehensive either.

Earlier, I shared a QLever query of missing county seats. You can click on the “Map view” button to get a heatmap of results, then use the button on the left to switch from “Auto” to “Objects”. This query is dependent on wikidata=* tagging, which is generally comprehensive; however, for some reason, none of Alabama’s county seats has a wikidata=* tag. The other caveat is that QLever is dependent on official OSM planet files, which can be as much as a week out of date. (Sophox consumes OSM’s minutely diffs, but I haven’t come up with a performant query for the same thing yet.)

Quoting Wikipedia:

…such as Arlington County, Virginia, where the county seat is the entire county.

What did you do for that one?

Rhode Island and her four county seats* are complete.

*if you can really call them that

1 Like

Illinois complete!

SD is now done.

I did Maryland the other day. Who wants to tackle the other 1,840?

1 Like

Who wants to tackle the other 1,840?

I guess I did! I went through state-by-state and added capital=6 to all the remaining county seats. I also fixed a number of cases where the admin_centre member was not properly the place node.


Oh wow! Thanks, Quincy.

Feel like consolidated city-counties should have the capital=6 tag at least, not sure about whether admin_centre or label would be more appropriate for the relation role.

I think Arlington is already in good shape. It isn’t a consolidated city-county but rather simply a county that’s all built up. A couple years ago, I restored the Arlington CDP as a separate but coextensive boundary=census to clarify this point. As with other CDPs, the Arlington place=city node is the label of that boundary, and it can simultaneously serve as the admin_centre of the county boundary and now get the capital=6 tag too.