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
Missing shield on eight-way route concurrency #894
Comments
Related #planetiler Slack discussion here: https://osmus.slack.com/archives/C031V9E9RMG/p1688647853439579 |
Now that #893 has landed, the Ohio River Scenic Byway shield has displaced the State Route 3 shield. OpenMapTiles ranks SR 3 last even though it’s more important than at least three of the routes that remain: |
To fix this problem, additional code would be needed here to differentiate routes at the state level: |
That’s probably a good thing to polish up in the long term, though increasing the maximum concurrency would also work around the issue, functionally speaking. Greater concurrency would prevent this particular label from appearing until a higher zoom level. If that’s a problem, we could introduce a redundant layer that only includes a few shields at a time, as a backup. |
Please confirm whether this issue is resolved now! |
That segment has up to The tilejson implies that |
Cool, now we just need to increase this literal that limits the shield image expression to a six-way concurrency:
|
This eight-way concurrency is only a block long so it doesn't really seem like a major issue to me if a few of the shields aren't included (as long as they are properly sorted by importance). With such a short concurrency, the missing shields will display nearby and it will be relatively clear how each route connects. Are there any examples of actual signed seven or eight-way concurrencies of significant length? If so I could see a compelling argument for increasing the limit. |
That’s another issue: a scenic byway is being prioritized over a truck U.S. Route and the most important state route in the state. Fortunately, I don’t think increasing the concurrency limit in the expression has much of a downside. Any increase in the style’s size would be massively outweighed by the label code anyways. |
Here are some more substantial seven-way concurrencies in Georgia. I haven’t checked whether they’re all fully signposted, but they’re all in
Moreover, even if a route relation is tagged Footnotes |
Now that all the routes are in the tiles, it looks like SR 3 is being properly prioritized before the scenic route and the truck route. So that's good at least.
The downside I see is just that sometimes eight shields won't fit in the available space and MapLibre will instead show no shields. Of course we already have this problem with a limit of six, but it gets worse the higher the limit. Ideally we'd be able to progressively truncate the shield string so if 6 didn't fit we could show 5, then 4, then 3, etc. I'm not sure if that's possible, but it sounds like your backup layer idea would have a similar goal. |
Perhaps, but this downside is no more significant than the concurrencies themselves.
The fallback layer would be the way to progressively show shields in a concurrency. I’ve experimented with something similar for #793, but the shield concurrencies should be more straightforward to accommodate than road labels. If we’re really concerned about clutter, I think one fallback layer would be enough. Six layers (representing a factorial of concurrency cardinality) would probably be overkill and possibly counterproductive. The user needs to be able to trust to some extent that we’re showing all the shields we can. If there are too many fallback layers, the user needs to keep zooming in further to verify that the map has fully expanded all the labels. |
This query turns up 1,698 roadways that are part of five or more unique route relations of numbered highway routes.1 The vast majority of them are in the Southeast: Cincinnati’s Central Avenue is the most highly concurrent roadways in these results. Tied with it is a roundabout in Augusta, Maine that should probably be refactored so that each route only traverses part of the roundabout. Footnotes
|
In Downtown Cincinnati, Central Avenue between 5th and 6th Streets carries U.S. Routes 22, 27, 42, 52, 127, U.S. Route 50 Truck, and Ohio State Route 3 – in that order. This seven-way concurrency is apparently too much for OpenMapTiles, which can only handle up to a six-way concurrency: openmaptiles/openmaptiles#1128. Americana shows all the shields except for U.S. Route 50 Truck.
Once changeset 138,168,933 makes it into the tiles, there will be an eighth route to display along this block: the Ohio River Scenic Byway. #893 is adding a shield for that route. Presumably it would go missing at 5th Street and pick back up on the 6th Street Viaduct.
Blocked by openmaptiles/planetiler-openmaptiles#95
The text was updated successfully, but these errors were encountered: