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

Default opacity state for "allow-overlap" symbols incorrect when they are placed off-screen #7172

Closed
ChrisLoer opened this issue Aug 22, 2018 · 1 comment
Labels

Comments

@ChrisLoer
Copy link
Contributor

GL JS version of mapbox/mapbox-gl-native#12683, port of mapbox/mapbox-gl-native#12698.

Symbols with *-allow-overlap: true default to being visible before placement happens, so we can show them immediately when their tile loads. However, if they are included in a placement while they are far enough outside the viewport, CollisionIndex::placeFeature won't place them. This is a performance optimization: we don't want to clutter the CollisionIndex with lots of stuff that's far off screen. The problem is that when this happens, we override the default "visible" state for the symbols, and when the map is panned to bring them on-screen, they won't become visible until the next placement happens (and when it does, they'll have to fade-in).

When we implement this in GL JS, we should also implement a render test that uses a non-zero fadeDuration, loads a symbol outside of the grid range, then pans over before placement/fade has had a chance to run and verifies the symbol is already visible.

cc @ansis @ryanhamley

@ChrisLoer
Copy link
Contributor Author

Fixed with #7244.

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

No branches or pull requests

1 participant