Incorrect Indianapolis city limits

The Indianapolis boundary relation is coextensive with that of Marion County, which is inaccurate as far as I can tell. The Indianapolis relation also overlaps 15 other city and town boundaries that are also tagged as admin_level=8, causing geocoders to ignore these cities and towns and producing warnings in validators.

In the absence of a boundary dispute or surveying error, the usual rule is that two boundaries should not overlap at the same level, because that would introduce topological ambiguity. For example, is Lawrence Community Park in Lawrence, Indianapolis, Marion County? Or is it in Indianapolis, Lawrence, Marion County? Is it in either Lawrence and Indianapolis but not both, depending on the user’s hometown’s diplomatic relations with the two cities? Or do we just not know because no one has adjudicated competing claims?

None of the above: the park is indisputably located in Lawrence, Marion County, Indiana. But Nominatim ignores Lawrence, because its boundary relation is subsumed by that of Indianapolis.

A real-world problem

Indianapolis consolidated with Marion County in 1970. More precisely, the city and county governments consolidated in an arrangement called Unigov. The city grew to encompass all the unincorporated territory of the county, but the 15 other cities and towns within the county retain some degree of autonomy as included and excluded towns. An included town such as Clermont is subordinate to Indianapolis as a city, while an excluded town such as Lawrence is subordinate to Marion County, represented by the Indianapolis government. Marion County still continues to exist geographically as an administrative subdivision of Indiana. Unique among the included towns, Cumberland straddles the Marion–Hancock county line, so it’s an included city on one side but a fully autonomous city on the other side.

Imgur

The Census Bureau recognizes Marion County, each of the 15 included and excluded towns (such as Lawrence), and Indianapolis as a consolidated city. Unsurprisingly, their Indianapolis includes the included towns but excludes the excluded towns. They also recognize a balance – a kind of statistical area – corresponding to the entire county outside the included and excluded towns.

Attempted fixes and more problems

In OSM, county boundaries were imported from a USGS dataset, including Marion County (as admin_level=6), while municipal boundaries were imported from TIGER. The TIGER import included the 15 included and excluded towns, originally as ways (admin_level=8). The ways were later converted to relations. No Indianapolis boundary was ever imported: due to an oversight, the TIGER import skipped the entire class of consolidated cities.

In 2020, the Marion County boundary relation was renamed to Indianapolis. The following year, Marion County reappeared as a new boundary relation coextensive with the Indianapolis boundary relation, a double entry in order to make the county findable again. Based on edit history, both the mappers who made these changes appear to have been skipping around the country fixing basic boundary issues. They may not have paid close attention to whether the boundary was correct. Instead, they assumed that Indianapolis and Marion County are coextensive.

Potential fixes and even more problems

If we follow the Census Bureau, then we’d redraw the Indianapolis boundary to continue including the included towns but exclude the excluded towns. That sounds pretty logical! We’d also need to demote the included towns to admin_level=9 or 10 to avoid overlaps. Unfortunately, this creates a problem with Cumberland. In the context of Hancock County, Cumberland should be admin_level=8, plain and simple. However, a single boundary relation can’t be one level on one end but another level on the other end. The Census Bureau has no problem representing this situation, because to them, counties and their subdivisions, incorporated places, and consolidated cities form three separate hierarchies under the state, as opposed to the one hierarchy that we jam all administrative boundaries into.

Ideally, we would follow the on-the-ground rule, but Marion County’s cities and towns post border signs rather inconsistently. As far as I can tell, INDOT only ever posts Marion County signs on roads it maintains, while Indianapolis only ever posts Indianapolis signs on streets it maintains. Indianapolis signs generally occur at the county line, but never inside an included or excluded town.

Two Indianapolis signs well within the county, at the city limits of the included towns of Clermont and Cumberland, suggest that the city-county government doesn’t consider included towns to be part of the city proper.

Also, Cumberland describes its relationship with the city as primarily pertaining to planning and zoning. To me, this suggests that, with our principle focus on geography, we should depart from the Census Bureau and exclude all 15 cities and towns from Indianapolis.

Proposed changes

I propose that we make the following changes:

  • Redraw the Indianapolis boundary relation to exclude both the included towns and the excluded towns, so that it would no longer be coextensive with the Marion County boundary relation. There would no longer be any overlap between admin_level=8 boundary relations.
  • While we’re at it, we could undo the switcheroo, so that the original Marion County boundary relation once again represents the county, in case there are any external references to the county that happened to be getting the same geometry despite the 2020 renaming.

However, what I’ve turned up so far is rather flimsy, so I’m interested in feedback about this approach and any evidence to the contrary.

Meanwhile

Each of Indiana’s counties is completely subdivided into townships, which contain cities and towns. Townships in Indiana maintain their boundaries regardless of municipal incorporation or consolidation, so Indianapolis continues to span nine townships. The Census Bureau recognizes each of the nine townships as minor civil divisions, direct divisions of the county. However, due to an oversight, the import skipped the entire class of MCDs, so Marion County’s townships continue to be incorrectly omitted from the map. The townships should be mapped at some point. They’d be tagged as boundary=administrative admin_level=7 border_type=township, as in other Indiana counties.

Indianapolis is also divided into quadrants with extensive signposting, including on highways. However, this system for tourists is arguably more closely related to boundary=place than any kind of administrative boundary.

9 Likes

I support this, it appears to be a similar situation to Kansas City, KS (Relation: ‪Kansas City‬ (‪129568‬) | OpenStreetMap), which is a unified government with Wyandotte County but the OSM relation excludes Edwardsville and Bonner Springs (plus some small parts of mainly Johnson County cities that spill over).

Unigov was messy in 1970, and it still is today :wink:

I think the Census Bureau’s interpretation of what’s inside and outside of Indy is correct—the included towns are within Indianapolis, and the excluded towns aren’t. No matter how much local identity these towns have, they’re still subordinate to the government of the Consolidated City of Indianapolis. With that, I’d rather demote them to admin_level=9 or 10. But that leaves the aforementioned issue with Cumberland not matching its neighbors in Hancock County.

Alternatively, if we treat Indy like the exception it is, we could leave all the towns alone and promote Indianapolis to admin_level=7. But, of course, that’s reserved for the yet-unmapped townships.

If we go one step further, we could keep Indy at admin_level=8 and demote all other municipalities to 9, and we’d get a passable hierarchy that satisfies the exceptions. Though that’d mean Indiana’s admin_level system would no longer match any of the other 49 states. Ugh.


It seems logistically easier to just stick to the current system of admin_level and exclude all the included towns from Indianapolis. I’m willing to work with that for now if it fixes issues with OSM data consumers. But in the long term, we should work towards a solution that accurately represents Cumberland, Indiana as a self-governing municipality that’s partially within, and subordinate to, another one.

There’s always this option. :wink:

Including the included towns certainly makes logical sense in general, and I’m more than willing to defer to local knowledge on the actual relationship of those towns to Indianapolis. The resulting overlap between Indianapolis and Cumberland is unfortunate, but I already mentioned two common cases where boundaries overlap at the same level (disputes and surveying errors), so maybe we can live with a third class of overlap. At least Nominatim doesn’t suppress Cumberland on the Hancock County side of the county line. We’d still have to document this weird case so that another well-meaning out-of-towner won’t come along and cut it out of Indianapolis. Maybe we can get OpenCage to mention it in one of their epic #geoweirdness rundowns.

1 Like

Normal countries on OSM: How do I tag this thing?

United States on OSM: But what does it really mean to be in Indianapolis?

5 Likes

We map reality. Exceptions (like Indianapolis) exist because it is unique. It’s nice, true, when “things fit into a framework” (like others, like neighbors…) but it’s is overwhelmingly clear that believing one stack-of-hierarchy does or should match another is part hallucination.

If we need to restructure “from 4 on down” (to 10) in Indiana, and it faithfully represents (as much as a hierarchy “from 4 on down” can) that would be preferable. It might be work to achieve that consensus, but if / as we do, I’d find that to be a satisfyingly worth-it solution.

If we tag Indiana as admin_level=3, then we’ll have plenty of space for new discoveries in hierarchical boundaries.

:face_with_peeking_eye:

1 Like

I think “going high” (higher in the hierarchy, like from 4 to 3) causes more grief than would “staying lower” (like at the 5, 6, 7, 8, 9, 10 levels). So, IF (big if) we decide to restructure the numbering, “stay low” rather than (needlessly) “fly high.”

I think we should go the other way. Let’s make the US admin_level=1 to make more room for midwestern weirdness.

Anyways, since the comedy routine seems to have been missed (if you’ll forgive my use of the perfect infinitive), the topology seems straightforward:

6 - county
7 - township
8 - city/town
9 - subordinate city (for lack of a better term for these)

This seems like the first admin_level=9 case that’s uncontroversially part of the administrative boundary scheme.

1 Like

Not bad at all! I mean, we have 4 through 10 (maybe 3 through 10 for these purposes…3 if we were really stretching things; we don’t need to) and we can do whatever we want with it / them. Especially as locals agree (and offer things like legislative votes affirming something, or a constitutional clause of Indiana that makes things clear or something like that). It seems like this can be found in Unigov’s “charter,” and there’s gotta be such a thing.

We did try to unravel Unigov years ago…

So would Cumberland be 8 or 9? It’s partially subordinate, and partially not. Do we leave it as an exception within Hancock County, or should we instead leave Indianapolis as an exception with its own unique admin_level?

If we demote Cumberland to admin_level=9, then all its peers in Hancock County need to be admin_level=9 to match. The contagion would also spread to Henry County, due to Shirley. I think it would be very difficult to explain why Greenfield and New Castle (which isn’t even in the same metropolitan area) should have a higher level than any other county seat in the state, when there’s absolutely nothing legally distinct about them.

The problem with Cumberland is essentially that it doesn’t have a homogeneous admin level throughout the territory, breaking a fundamental tenet of the boundary tagging scheme. Any solution will seem wrong in some way, but I’d prefer one that limits the impact to as few boundaries as possible.

Luckily, Cumberland doesn’t appear to border any municipality other than Indianapolis. So we could keep Cumberland at level 8, unlike all the other included towns, overlapping Indianapolis, then clarify the relationship between the two by tagging the boundary way within Marion County as boundary=administrative admin_level=9 name:left=Cumberland as an override.

This would be similar to the tagging schemes for disputed boundaries and maritime boundaries when these attributes only affect part of the boundary encircling a country. The boundary QA checker currently warns about boundary ways, but we could write it off as unavoidable in this case.

Another option would be to exclude Clermont and Cumberland from Indianapolis, despite their status as included towns, on the basis that Indianapolis seems to treat them like excluded towns with the placement of its welcome signs. That might be too pedantic to stand up to scrutiny from locals, though.

As for @ZeLonewolf’s tongue-in-cheek proposal to decrease the levels of containing boundaries to create some breathing room, the least disruptive option would be to promote each county to level 5, acknowledging that despite the states’ best efforts at harmonization, each state’s system of counties is unique to that state. It still seems more disruptive than even tagging Indianapolis as level 7.5.

As someone who was initially in disagreement with the admin_level=9 proposal for the included towns, I think this makes the most sense. I was going to write a long detailed post as to why I didn’t like it, but I changed my mind as I researched it further.

Copying the proposal down to the bottom to update to the current status as far as I can tell (text I updated is bolded):

  • Redraw the Indianapolis boundary relation to exclude the excluded towns, so that it would no longer be coextensive with the Marion County boundary relation.
  • Undo the switcheroo, so that the original Marion County boundary relation once again represents the county, in case there are any external references to the county that happened to be getting the same geometry despite the 2020 renaming.
  • Change the other included towns to admin_level=9.
  • Keep Cumberland at level 8, unlike all the other included towns, overlapping Indianapolis, then clarify the relationship between the two by tagging the boundary way within Marion County as boundary=administrative admin_level=9 name:left=Cumberland as an override.

Yes, that’s correct, except that Indianapolis would continue to “include” (overlap with) the western half of Cumberland.

I’m having trouble conceptualizing this situation. So you have an area that is “in” two different municipalities? How does that work exactly? Which one provides services, etc.? I’m not super clear on the mental model here. My initial impression was that Indianapolis included subordinate political entities.

Edited my post to reflect that, thanks!

I’m not local, so I’m struggling to understand it too. Cumberland has its own town council and various boards and commissions that handle everything from parks to zoning to sanitation. On some planning-related matters, the town government must defer to the Indianapolis city-county government to a greater extent than most Indiana towns defer to their county governments – as long as it pertains to the part of town within Marion County. Otherwise, Cumberland is legally like any other Indiana town. As far as I know, all the other included towns have the same relationship to Indianapolis.

If I visit that part of town, am I inside or outside of Indianapolis? NaĂŻvely, I would consider the “Indianapolis Welcomes You” sign several blocks down U.S. 40 and think I’m still outside Indianapolis. In Indiana, all streets within municipal boundaries are maintained by the municipality – Cumberland in this case – so naturally Indianapolis only puts up its sign once you get onto a city-maintained street. Anyways, city limit signs are only so helpful in this part of Indiana. Indianapolis seems to have prioritized signposting its borders with Carmel to the north and Greenwood to the south, while the only Cumberland welcome sign is well inside Hancock County, bolted onto one of the county’s many school district limit signs. (Yes Virginia, school districts are verifiable on the ground too.)

IndyGIS, the GIS department for Indianapolis and Marion County, has a My Neighborhood application that provides basic community information about the entire county, including the excluded towns. The tool reports that an address outside of Cumberland, such as 1000 CUMBERLAND RD, lies within Indianapolis, as expected:

If you enter an address just up the street in Cumberland, such as 100 N MUESSING ST, it reports just Cumberland as the city or town instead:

Similarly, IndyGIS’s “Cities and Towns” layer corresponds to the Census Bureau’s “Indianapolis balance”, excluding the excluded towns as well as the included towns. This layer seems definitive, but is it reliable for our purposes?

The distinction between included and excluded towns seems like a meaningful one, but if Cumberland and the other included towns are actually independent of Indianapolis from a territorial standpoint, regardless of the governments’ obligations to each other, then I’d favor excluding Cumberland and the other included towns from Indianapolis, aligning Indianapolis with the Census Bureau’s “Indianapolis balance”. This would save us the trouble of fudging the admin_level=* tags and the boundary ways. Hopefully I’m not missing the forest for the trees as a non-local.

To reiterate:

Let’s just sort this out now and worry about the messy parts later :wink:

2 Likes

This turned out to be an especially good idea, because the Indiana boundary relation has been calling “Indianapolis” one of its subareas all along. :man_facepalming:

I’ve also updated the relevant Wikidata items to point to the correct relations. All together, that should fix the infobox in Wikipedia’s “Indianapolis” article:

3 Likes

So, I dislike keeping open the can of worms: what is Unigov from OSM’s perspective? Do we map it?