-
Notifications
You must be signed in to change notification settings - Fork 63
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
Add oneway arrows to remaining highway classes #512
Conversation
I honestly didn't even realize this was missing. |
It appears that this change also unifies the link and regular versions of each road class, is that also a deliberate consolidation? |
#513 would be helpful in assessing changes in layer count. |
Yes - were they separate layers intentionally? |
Only in the sense that I (a) didn't really know what I was doing and (b) didn't realize layer count had a performance implication. |
Adding oneway arrows seems to cause a significant slowdown at very high zoom, so it's hidden at ≥z20. |
This sounds dodgy. |
Something is extremely slow at high zooms already. |
There is an artifact in cases of a link road:
Is this resolvable with a change in ordering or unavoidable? Is there a way to prevent the arrows from being drawn too close to the ends of a road? |
We would have to sandwich oneway arrows in between two road fill layers, which would hinder our ability to refactor roads to use more expressions and fewer layers. I don't think there's an easy solution to this, other than maybe lightening the motorway fill to accommodate a dark oneway arrow. |
It is possible to use invisible spacer symbols to collide out any arrows that would be drawn at the endpoints, similar to how we’re pushing waterway labels away from bridges. In this case, the symbol’s |
One-way arrows only come in at z15 for freeways. At this zoom level, we’re already starting to show surface streets in the “cased” style. I think this gives us some flexibility to deemphasize color distinctions based on road classification. It’s also at a high enough zoom level that there’s a less ambiguity as to which ramp goes in which direction, so maybe the ramp arrows aren’t essential. /ref #486 |
Hmm... Without arrows on link roads, figuring out whether a ramp is an on or off requires the eye tracing it up to the lanes it diverges from. I imagine that there are a few cases of stacked interchanges where that becomes really difficult to tease out visually. (for example, the GW bridge) |
PR Preview: Sprite Sheets: |
These looks pretty good for all but the lowest highway classes. For the tiniest roads (alleys and so forth), I'm not sure if I'm seeing arrows or if there's a speck on my laptop screen that needs to be cleaned. Not sure if there's a good solution to this. Perhaps a hard minimum size to the arrow and let it overflow a bit? |
This looks good! I note that bridges are not included (example), however, bridges appear to be not supported presently. Is that intended to be part of this PR or left as future work? |
That's a mistake. They're in the list of layers, so I don't know why they aren't showing up. |
At a glance, it appears that one-way arrows are below bridges in the layer stack. |
Figured it out. The culprit was the invisible spacer label that prevents waterway labels from colliding with bridges. This spacer is now disabled if the bridge is tagged |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good work. Thanks for sticking it out!
This would be a great use case for #881 if we're not in a rush to push the change.
Before removing the spacer, oneway arrows would only show up at very high zooms. Something weird is going on and it's cooking my CPU. |
Ah, it might be that some combination of spacers + oneway arrows + lettering causes this. I still also hypothesize that it's overzooming the z14 tile to z22 and then stuffing it full of symbols, i.e. if higher zoom tiles existed that were simply slices of the full ones then it would attempt to do less work. Might also be that the waterway lettering is attempting to overlap itself severely, could see if the slowdown is localized depending on the presence of waterways or oneways. https://osmus.slack.com/archives/C01V02K52UX/p1658777024337899 |
Adds oneway arrows to non-motorway highway classes, with half the layers.