Skip to content
This repository has been archived by the owner on Aug 8, 2023. It is now read-only.

Never show blank spots #1626

Closed
kkaefer opened this issue May 22, 2015 · 10 comments
Closed

Never show blank spots #1626

kkaefer opened this issue May 22, 2015 · 10 comments
Assignees
Labels
archived Archived because of inactivity Core The cross-platform C++ core, aka mbgl performance Speed, stability, CPU usage, memory usage, or power usage rendering

Comments

@kkaefer
Copy link
Contributor

kkaefer commented May 22, 2015

When zooming out, or panning aggressively, we're often showing blank screens because tiles haven't loaded or parsed yet. We should lazily keep tiles in cache that are a couple of zoom levels lower so we can show it immediately when the user zooms or pans.

@friedbunny
Copy link
Contributor

This is one of the major perceptual shortcomings between MBGL and other map libraries. 👍

@1ec5
Copy link
Contributor

1ec5 commented May 22, 2015

As seen in #119 (comment), mapbox-gl-js keeps low-resolution tiles around to cover aggressive panning (as Google Maps does).

@incanus incanus added the performance Speed, stability, CPU usage, memory usage, or power usage label May 23, 2015
@kristfal
Copy link

Hacked in this by duplicating a source in the stylesheet, set maxzoom and minzoom = 5 for that source and created a simple 'background' style from the source. Worked well and adds a lot to the user experience, so this feature is definitely great.

Not sure how flexible you want this, but defining the zoom level (or zoom level difference between current and 'low-detailed' zoom) where MBGL would fetch low-detailed tiles from could be very useful. For instance, showing very grainy highways from z6 at z13 reduces the overall quality feeling of the map. Fetching low-detailed data from a 'cleaner' zoom level alleviates this. Since a lot of your users have custom styles/data, I'd assume there is no perfect universal level to pull low-detailed data from.

@incanus
Copy link
Contributor

incanus commented May 30, 2015

This should be happening as of #1281, right? (in-memory parsed tile cache)

This should be independent of zoom or pan and just keep recent tiles.

Or this something more tuned like adjusting a bias for different zooms versus adjacent pans?

@jfirebaugh
Copy link
Contributor

Or this something more tuned like adjusting a bias for different zooms versus adjacent pans?

Yes, this is about changing the cache retention strategy to preserve low-z tiles specifically.

@tmpsantos tmpsantos self-assigned this Jun 30, 2015
@incanus
Copy link
Contributor

incanus commented Jul 30, 2015

Related: #119

@tmpsantos
Copy link
Contributor

I started this one. The approach is to make the prefetch configurable:

  • disabled
  • dynamic: will prefetch at least N zoom levels down from the current zoom level.
  • fixed: will prefetch always from the N zoom level.

@kkaefer kkaefer added Core The cross-platform C++ core, aka mbgl rendering labels May 30, 2017
@1ec5
Copy link
Contributor

1ec5 commented Jul 7, 2017

Tracking tail work in #9437 for Android and #9438 for iOS and macOS.

@tmpsantos, should we keep this issue open until we address #7026, per this to-do? Also, is this setting disabled by default? Should the SDKs enable it by default? Until the default behavior is to prefetch tiles, I’m not sure we should close this issue.

@tmpsantos
Copy link
Contributor

tmpsantos commented Jul 11, 2017

should we keep this issue open until we address #7026, per this to-do?

We should keep this open until the label flickering is fixed (there is a labeling sprint coming that should address that).

The current behavior is "enabled by default", but it will only work for raster. For vector behavior remains the same as before regardless if prefetch is enabled or not.

@1ec5 1ec5 reopened this Jul 13, 2017
@stale stale bot added the archived Archived because of inactivity label Nov 5, 2018
@stale
Copy link

stale bot commented Dec 1, 2018

This issue has been automatically detected as stale because it has not had recent activity and will be archived. Thank you for your contributions.

@stale stale bot closed this as completed Dec 1, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
archived Archived because of inactivity Core The cross-platform C++ core, aka mbgl performance Speed, stability, CPU usage, memory usage, or power usage rendering
Projects
None yet
Development

No branches or pull requests

7 participants