Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tennessee shields #303

Closed
claysmalley opened this issue Apr 25, 2022 · 20 comments · Fixed by #439
Closed

Tennessee shields #303

claysmalley opened this issue Apr 25, 2022 · 20 comments · Fixed by #439
Labels
mapping Changes needed to OpenStreetMap shields
Milestone

Comments

@claysmalley
Copy link
Member

claysmalley commented Apr 25, 2022

Tennessee has one "network" of state highways, though signage can shift between either of two shields depending on a segment's importance in the road hierarchy. Route numbers can have up to 3 digits.

Existing relations are tagged with network=US:TN, conflating both shields into one network. There has been some previous discussion towards new network values that correspond to shield appearance, but none so far have produced the change in tagging guidelines necessary for renderers to support Tennessee highway shields.

Primary shield:
Tennessee_155

Secondary shield:
Secondary_Tennessee_171

@claysmalley claysmalley added mapping Changes needed to OpenStreetMap shields labels Apr 25, 2022
@claysmalley claysmalley added this to the 1.0.0 milestone Apr 25, 2022
@1ec5
Copy link
Member

1ec5 commented Apr 25, 2022

Existing relations are tagged with network=US:TN, conflating both shields into one network. There has been some previous discussion towards new network values that correspond to shield appearance, but none so far have produced the change in tagging guidelines necessary for renderers to support Tennessee highway shields.

I think this wiki page still describes the current and historical tagging situation accurately.

The highway-based approach isn’t necessarily incompatible with the 2021 highway classification guidelines, but we would need a change to OpenMapTiles/Planetiler to expose highway in the transportation_name layer. Unfortunately, that approach is fragile because it would tie road classification to shields more tightly than in any other state except Puerto Rico, which incidentally has the same tagging conundrum: #240.

My experience working on #190 has softened me to a third approach of splitting out US:TN:secondary even though it would result in very fragmented route relations. At least it would be consistent with the approach taken in countries that rigorously signpost their freeways as a different kind of route than connecting non-freeways. We could perhaps relate US:TN:primary and US:TN:secondary routes into US:TN superrelations to preserve the ability to see the route as a whole.

@Pengor
Copy link
Member

Pengor commented Apr 25, 2022

I agree using highway=* tags to determine shields sounds fragile due to the nature of highway classifications being somewhat fickle in the past (hopefully the ongoing highway reclassification processes will help stabilize that though). The "fragmented" routes with a superrelation idea sounds promising to me; mostly because it avoids the highway tag, but also if something similar is being used elsewhere it may be easier to adopt.

@zekefarwell
Copy link
Collaborator

I've been driving in Tennessee for the past few days and have seen both shields in use. There doesn't seem to be much rhyme or reason to where one or the other is used, but I guess the triangles are theoretically on less important sections. This seems like a similar situation to what we have in Vermont (described in #268) with sections of state numbered routes using a different shield where they are town maintained. The current plan (already complete?) in VT is to split off these town maintained sections into separate route relations withnetwork=US:VT:Town instead of the typical network=US:VT. Seems like doing something similar in Tennessee would be appropriate with network=US:TN and network=US:TN:Secondary. A data consumer that doesn't wish to display this distinction can match network=US:VT* and network=US:TN* to display a single shield for all routes in each network. The fragmenting of route relations is unfortunate, but I can't see a better way to capture this nuance.

@claysmalley
Copy link
Member Author

A data consumer that doesn't wish to display this distinction can match network=US:VT* and network=US:TN* to display a single shield for all routes in each network.

Well, ideally, the tagging would be clearly defined and they wouldn't have to rely on wildcard matching. I like the guidelines you've presented with network=US:TN and network=US:TN:Secondary.

For version 1 I guess we could go forward with rendering network=US:TN and worry about the specifics of secondary highways later.

@ZeLonewolf
Copy link
Member

I would not be opposed to putting the burden on a future Tennessee mapping community to adding more complexity to their route network tagging in order to achieve a more nuanced rendering.

@1ec5
Copy link
Member

1ec5 commented May 8, 2022

The biggest problem currently is that the existing tagging conventions have been muddled by folks unaware of the existence of two separate networks. So any migration to a new tagging convention will require digging through feature histories across splits and merges or, more likely, taking a fresh look at street-level imagery or the same TDOT source that NE2 used.

In the meantime, a binary classification that assumes primary unless known to be secondary won’t be as usable in Tennessee as it is with Vermont’s town highways, because the secondary route segments are far more numerous and lengthier than the primary route segments.

@1ec5
Copy link
Member

1ec5 commented May 8, 2022

Changeset 120,695,565 refactors one state route into child route relations along three axes:

  • Primary (network=US:TN:primary) versus secondary (network=US:TN:secondary)
  • Signed (ref) versus unsigned (unsigned_ref)
  • Northbound (direction=north) versus southbound (direction=south)

Not all state routes will need this level of complexity. Judging from Wikipedia’s list, 86 state routes are a mix of primary and secondary segments. However, most of them are wholly or partially unsigned; many unsigned segments have been excluded from route relations. The separate relations per cardinal direction aren’t strictly necessary in a first pass.

@ZeLonewolf
Copy link
Member

If someone is working on this and requires a map data update, please let me know.

@claysmalley
Copy link
Member Author

Let's find at least one Tennessee state route with signed primary and secondary portions, and map it before we go through with a data update. As a side note, I've mapped a sampling of Texas county roads and I'd love to have them show up so I can work on their shields.

@zekefarwell
Copy link
Collaborator

Route 62 was one I drove on recently where I'm pretty sure I saw both shield types.

@ZeLonewolf
Copy link
Member

ZeLonewolf commented May 8, 2022

@zekefarwell is currently conducting a field survey to confirm that the variety of our highway signage is, in fact, insane.

@1ec5
Copy link
Member

1ec5 commented May 9, 2022

Changeset 120,738,589 refactors SR 394 into child relations for primary versus secondary segments (both signposted) and eastbound versus westbound.

Changeset 120,734,828 refactors SR 283 into child relations for primary versus secondary segments (both signposted).

@zekefarwell
Copy link
Collaborator

zekefarwell commented May 10, 2022

Some references from the latest Tennessee highway map:

@claysmalley
Copy link
Member Author

@ZeLonewolf I think we're ready for that data update now.

@ZeLonewolf
Copy link
Member

I should be able to do it this week. I need three hours when I can babysit an AWS instance :-D

@1ec5
Copy link
Member

1ec5 commented May 13, 2022

Here’s the full list of network values to render:

  • US:TN:primary
  • US:TN:primary:Business
  • US:TN:primary:Bypass
  • US:TN:secondary
  • US:TN:secondary:Alternate
  • US:TN:secondary:Truck

@zekefarwell
Copy link
Collaborator

Any particular reasoning for primary and secondary rather than Primary and Secondary? I recommended US:VT:Town for Vermont because it seems like all the network values were meant to be proper cased. Should we have done US:VT:town instead?

@1ec5
Copy link
Member

1ec5 commented May 13, 2022

If I’m not mistaken, banner parts like :Alternate and :Truck were originally copied from modifier, a freeform text key intended to match the case used in writing or on non-uppercased signs. The thinking went that you’d write “U.S. 50 Truck”, not “U.S. 50 truck”. This was one of NE2’s many innovations, another being HFCS=Urban Minor Arterial - Other.

Otherwise, the predominant practice globally uses snake_case for non-geographic, non-banner parts of network, just like for any non-freeform key. For example, Montana’s secondary state routes and Ontario’s secondary provincial routes are tagged network=US:MT:secondary and network=CA:ON:secondary, respectively. One benefit of using lowercase is that it’s possible to distinguish the geographic scope part of the value (US:MT) from the subtype (secondary) by case alone, since we already made the mistake of not using hyphens per ISO 3166-2. Americana is explicitly enumerating the many networks it supports, but other data consumers may prefer to make generalizations via pattern matching.

I noticed US:VT:Town and US:WV:County and didn’t think much of it. However, with @claysmalley’s county route proposal doubling down on underscores for county names, it seemed like the trend was moving away from NE2’s freeform text style. The lowercase form looks less exotic to me, but I admit having second thoughts as soon as I needed to append a banner like :Alternate, resulting in a mix of cases.

@zekefarwell
Copy link
Collaborator

Makes sense. Seems like we're trying to use proper case only for actual proper names. I guess my aiming for consitency was futile. May as well leave the US:VT:Town value for now, since the tileset was just updated with it. There are only 24 uses so it should be trivial to change to US:VT:town later if needed. I suppose ideally the banner values would also be lowercase to fit the pattern, but that would be a much bigger effort to change at this point.

@1ec5
Copy link
Member

1ec5 commented May 13, 2022

Tennessee’s truck state routes consistently use a non-MUTCD-compliant Truck Route plaque instead of the usual Truck. So there’s nothing consistent about what Tennessee is doing anyways. 😅

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
mapping Changes needed to OpenStreetMap shields
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants