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

Improve 'perceived performance' by preloading lower zoom level tiles #2826

Open
liebrand opened this issue Jul 6, 2016 · 13 comments
Open

Improve 'perceived performance' by preloading lower zoom level tiles #2826

liebrand opened this issue Jul 6, 2016 · 13 comments
Labels
feature 🍏 GL native → GL JS For feature parity with Mapbox Maps SDK on a native platform

Comments

@liebrand
Copy link
Contributor

liebrand commented Jul 6, 2016

A number of my users have complained that things "feel" slow and "blocky" when panning around. Basically, as they drag-pan around on their phones, they see a lot of white blocky tiles being loaded. Much more so than google maps.

Initially, I thought I should try and increase the viewport. Not sure about the terminology here, but basically make sure more neighbouring tiles are preloaded. However, I think that quickly leads to 'how long is a piece of string'. And after a bit more digging, I think there is a better and easier solution to this perceived performance.

Rather than loading more neighbouring tiles at the current zoom level, we could preload (and render!) the lower zoom level tiles. That way, when drag-panning, you would not see any white unloaded tiles. Instead you'd see details from the lower zoom level, which would gradually improve quality as the tiles at the current zoom level are loaded.

So if we are at zoom level 12, we could/should load the tile at those coordinates for level 11 (and maybe even 10, 9, etc - so that if the user does a quick zoom out pinch gesture, they still dont see unrendered tiles).

This should make a significant improvement on 'perceived' performance.

@jfirebaugh
Copy link
Contributor

We actually just recently implemented this feature. See #123.

@liebrand
Copy link
Contributor Author

liebrand commented Jul 6, 2016

That sounds great; although the issue you linked to is one from three years ago and I can't really see how it's related?

@liebrand
Copy link
Contributor Author

liebrand commented Jul 7, 2016

I just upgraded to 0.20.1 but I still see white blocky tiles as i pan and zoom out. Can you point me to the commit/pull-request where this was implemented? Then I can check if it ought to be in 0.20.1

@jfirebaugh
Copy link
Contributor

Oh, sorry, I got my repositories mixed up. We implemented this feature in mapbox-gl-native (for desktop and mobile SDKs), but you are requesting it for Mapbox GL JS.

@jfirebaugh jfirebaugh reopened this Jul 7, 2016
@liebrand
Copy link
Contributor Author

liebrand commented Jul 7, 2016

Ah that explains it; yes for the JS version. Out of curiousity, how many lower zoom levels do you preload for native? Just the one, or several?

@liebrand
Copy link
Contributor Author

Friendly ping; is there any plan to implement this for JS as well?

@mollymerp
Copy link
Contributor

hi @liebrand thank you for the feature request. this feature is worthwhile but we don't have a specific timeline for building it out at this time. we would gladly accept a PR implementing this though!

@tzvc
Copy link

tzvc commented May 22, 2018

@mollymerp Is there any updates on this ? 👍

@jfirebaugh jfirebaugh added the GL native → GL JS For feature parity with Mapbox Maps SDK on a native platform label Aug 1, 2018
@asheemmamoowala
Copy link
Contributor

Native implementation in: mapbox/mapbox-gl-native#5143

@jliebrand
Copy link

Hi guys,

I was looking at something today and stumbled across this again. Wondering if there has been any update on this?

Seems like such an easy win to really make things "feel much smoother"?

@jliebrand
Copy link

Friendly ping... original issue is now almost four years old. Any chance of this happening?

@jliebrand
Copy link

Ping.... pong....

@msschl
Copy link

msschl commented Nov 3, 2020

I'm interested in this feature. Any news on this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature 🍏 GL native → GL JS For feature parity with Mapbox Maps SDK on a native platform
Projects
None yet
Development

No branches or pull requests

7 participants