Count every street in a city when 2 or more share the same name

Spoiler: I have found almost 2000 of those streets in my hometown alone, and many cities with similar cases.

Some street names are so popular that they have ben given several times within the city limits.

Typically, it happens when smaller independent cities are re-grouped into a bigger city at some point, a general tendency in the public administration of different countries (in Europe - I don’t know the situation overseas).

This issue has been discussed in the past but not in the idea category:

There are different downsides to the current method for street recognition in CS:

  1. striders don’t get credit for all the streets they have run. Here a personal example with 19 streets named the same: Rosenweg in Berlin, Berlin - CityStrides (ignoring the fact that some of them are not regarded as real streets by city authorities, but that is another issue)

  2. the non-counted completed streets are a bias for the monthly challenges (Challenges - CityStrides)

  3. the node hunter does not work anymore for some streets that have not been run at all. A personal example: Friedenstraße in Berlin, Berlin - CityStrides. As of today, there are 2 streets I have never seen in my life, but the node hunter says I have already completed the Friedenstraße because the 4 completed streets with the same name already account for 90% of the 180 nodes.

Because of the last point, I really hope that the popular hard mode idea (User Setting: Hard Mode) will be implemented at least optionally at some point, but the 2 ideas are independent, and I think the situation described here is not as rare as some may believe.

I have computed some provisional numbers for the city of Berlin (where I am only halfway, so I will certainly discover a few more of those streets):

Up to now, I have found 628 street names that are shared by 1873 different streets.

Conversely, it means that at least 1245 ways in OSM are missing from CS street counts just in Berlin.

This is my experience. Are you sure the same name problematic does not affect your city or a city you will visit soon? Even if not, don’t you think the described flaw should be solved?

Street names are the most usual way to define streets and it should stay like this for users in CS, but in the background, streets should be defined by their extremities additionally so that each of them remains identifiable and unique.

Yeah, this is a technical problem that I haven’t resolved yet. :sweat_smile:
It seems like this kind of query is possible (if not in an exact manner): find a complete logical highway by name · Issue #95 · drolbr/Overpass-API · GitHub I just haven’t figured out the exact syntax.

:thinking:
I’m not sure that this complete query in the link will actually help me. I run a single query to retrieve all of the streets within a city (area in Overpass) & include all of the nodes for those streets as long as they are within the city border.
This complete query seems like it would allow me to get all the streets that are named [something] that are close to each other (e.g. 150 meters), but that would be way more intense (I’d have to iterate over every single street in the city → do that for the 170k+ cities in CityStrides).

Although, it does seem to work well in that it puts together this section overpass turbo and doesn’t include this section overpass turbo (you may have to click the top left Run button on those pages)

1 Like

I’ve got 33 ‘streets’ that are named “Park” in my home city of Brisbane. Park Road, Lane, Street, etc. It sure would be nice if CityStrides could distinguish between them all… (including “Park Valet” haha)

If they’re literally named “Park”, then right now the import code will group them all together.

It should not be grouping “Park Road” and “Park Lane” and “Park Street” names. If this is what you’re seeing, my guess is that these are named incorrectly in OpenStreetMap as “Park”.

1 Like

You are correct James, It is only grouping all the “Park Roads” and the “Lanes” - so in fact I only have 11 of each not 33…

Ok phew :sweat_smile: thought there might have been another bug!

1 Like

I just updated Multiple streets with the same name are grouped as one with a note on this, but :thinking: this thread is probably the better place to have this conversation.

I’m working on a fix for this, which revolves around splitting streets wherever the underlying Way records no longer share a Node ID. When several Way records actually form a street, the data will be along the lines of Way A having Nodes 1,2,3 and Way B having Nodes 3,4,5 - it’s that shared Node 3 along with the same name tag that identifies itself as a single street.

In my local testing I’ve noticed a number of OSM edits need to be made afterwards - and this is in my smaller 300-500 street cities. Overall, these have been good edits that improve the map … but it still is editing work, and will likely confuse some people along the way.

The most common edit I’ve seen so far is that small connecting Way records around a roundabout need to have a name added (example & example).

Another common way that streets get split up is when they’re weirdly disjointed, like this section & this section … In the updated code, those will exist as two separate Arlington Street records in CityStrides.


So, I currently see two factors in the result of this change:

  • There will be edits required to re-join streets that should be a single street … these will mostly be adding the name to various Way records
  • There will be some streets that are split into two even though the separation is not so drastic
2 Likes

I can immediately think of places in Portugal (uncommon, but considerable) where a road is “broken up” by a named plaza but continues on either side and technically shares no common node. Similarly, where two roads converge and overlap briefly, i.e. not perpendicular, breaking up one of the roads into two non-intersecting segments. I don’t think either of these scenarios would be reconcilable with OSM edits, falling into your bullet point two.

I wonder, since you already have code in place that considers proximity, is there a way to write a code that could “join” disconnected streets with the same name whose termini are less than X (idk, say, 100) meters apart?

My immediate thoughts on this…

  • Whatever X is decided for “X meters apart” will immediately be wrong for something/somewhere :anxious_face_with_sweat:
  • People can share other numbers to use for X, leaving a “forever decision” alive (people still suggest alternatives to the “25 meters from a node” decision)
  • Connected vs disconnected leaves no room for discussion - two Ways either share a Node or they do not
  • On the technical side - geospatial queries are typically just more ‘expensive’ so if I can avoid a spatial decision, then I’m generally keeping things on the speedy side … though this expense may not be significant - it would be worth benchmarking to know for sure

I think Rua Stuart Carvalhais - CityStrides is one example of this splitting, which would split out into this Way & this Way

All of that totally makes sense and I repeat my eternal caveat that I don’t know anything about coding, but it had occurred to me based on your explanation that perhaps only considering the terminal nodes of a street could be ‘cheaper’ on the processing/cost load. Consider Boston and all its Washington Streets. The terminal nodes are all in completely different neighborhoods and none are within a mile of each other.

I do think that if it were ever put for a general discussion we could come to some general consensus definition of X, considering various cities and caveats. Thanks for all the thought you’ve put into this problem, I’ve long assumed we were kinda stuck with it the way it is.

Washington Street ended up being a good example… 8 streets

That long run is 2 streets, because the center doesn’t touch

That top left is 2 streets, because Cambridge St blocks the connection of the two Washington Streets:

I can see the argument for this being counted as 6 streets but I look at this and think :person_shrugging: yeah sure 8 streets.

1 Like

Fascinating stuff. Thank you for your diligence!

Coincidentally, I just ran through that intersection of Washington St. and Cambridge St. the other day. Interestingly, OSM is mis-mapped. You can see from the street signage – zoom in once or twice from this link – that the division between Cambridge St and Washington St is at the eastern edge of the intersection, such that Washington St is actually continuous in this case. I’ll fix it in OSM!

You got 99 problems, but this ain’t one!

When I look at this in Indianapolis, my immediate thought is oh no.

The city is a huge grid and there are so many disconnections where the street name continues on later. This random example would split 1 street into 13 I think. I imagine many cities with a similar grid-based structure would see their street counts skyrocket.

2 Likes

What in the pretend grid city is this :rofl:

East 39th Street in Indianapolis (and a number of others there that are easy to spot) is a good example of the “Whatever X is decided for ‘X meters apart’ will immediately be wrong for something/somewhere” argument I made :backhand_index_pointing_up: … some of those have a mile gap between them.

The street count will go up, but it’ll be easier to complete each section & the overall distance doesn’t change.

It does affect the definition of a street in a way that will cause me to receive more emails :anxious_face_with_sweat:

Thanks for sharing this example

Yeah, I just worry about the street count going up to unreasonable levels. It’s already a quite high 11,654 and I could see it going to 40k from this change alone.

From the perspective of “what is a street?” this street doesn’t feel like 13 distinct streets to me. If I were to tell someone I ran every street in Indy and there were 40k streets, I feel like I’d have to caveat my statement with “well, E 39th Street counts 13 times so I don’t know what the real total is.” Of course, there is the opposite issue with places that have 13 truly distinct Main Streets, so I’m not sure which method of counting streets is less impactful.

Edit: Another example in Carmel, IN which is the world capital of roundabouts. On the map the roundabouts themselves do not typically have a name, so they don’t count towards either connecting street (even if it were named, one street would still be split). This would cause every chunk between roundabouts to be its own street. It gets especially wonky for double-sided streets where each side between roundabouts would be unique:

2 Likes

Here’s a random example of the roundabout itself not being named in Carmel, IN.
That differs from where I live, where the roundabout carries the street name - Park Street & Pleasant Street. I want to reach out to the OSM community on Slack/Discord to see what the overall expectations are e.g. maybe Carmel is going to need a lot of name tag editing…

I ran the City Sync process on Indianapolis locally to see what its street count ends up as:
15,860 streets (up from 11,654 streets in there currently)

Definitely a lot to think about… I wonder if there are similar cities to Indianapolis that others know about.
I’d hate to get into a per-city setting around the world, but :person_shrugging:

Update: Thought of this after submitting … I wonder if the city’s total street count could be based on same-named streets. :thinking:

Update: I updated the post-sync street count inline above. My initial post noted that I’d share the results later.

Dang, a lot less than I thought. I guess there are a lot of streets that don’t have this issue. Indianapolis is pretty big, so I won’t claim to be an expert on it haha. Still is a 36% increase though.

I don’t know how I feel about this change as proposed without further modification, given the examples discussed so far. I guess that means I don’t feel strongly about it. But as much as I love to make number go up on my street count, I do think that this change makes navigating the pages of street names more tedious if in Boston there are 8 Washington Streets on a single 12-entry page - or worse in the Indianapolis example. We have nested cities…maybe we should have nested streets :joy:

1 Like

Same.
Which sucks, because it was a lot of work. :rofl: :sob:

Maybe there’s still some other way to determine when these streets should/shouldn’t be split.
I can run some calculations to see if something large like 3+ miles distance helps…

Maybe I only do this “splitting” while processing. It wouldn’t be user-visible at all, but it could reduce the processing stress for streets like George Street - CityStrides (314 Way records) and maybe to some extent Great Western Highway - CityStrides (composed of 934 Way records).

I dream about some way to make certain aspects of CityStrides, like “the definition of a street” or “100% completed city”, user-curated and have some sort of peer review verification system - wikistreetsia if you will. A few years ago I even started typing it out as an idea but trashed the draft because I couldn’t thresh it out well enough. I say dream because I’m sure that sort of internal architecture would not play well with all the other ways you’ve designed its inner workings.