-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Downloading an offline pack blocks the visible map from loading #4414
Comments
This occurs because The options for fixing this are:
The second option sounds most attractive to me. To reduce memory usage, we know we want to change the |
@jfirebaugh Any tips on how to get going on the second option? I have tried to use a mutex and a condition_variable to control the number of concurrent requests from the OfflineDownload, but it does not work as the requests are created and executed on the same thread using the RunLoop. Issuing "util::RunLoop::Get()->runOnce();" after each ensureResource will at least keep the queues small, but it does not improve the interactivity of the map by much. |
(Sorry for the noise, but I am grateful for any help on this subject, @friedbunny @incanus.) |
At minimum, the loop over tiles and the loop over glyphs need to be made incremental and fully asynchronous. These are the two loops that really flood I'm not sure whether it makes sense to fully generalize the request queuing mechanism to the other resource types as well (style, sources, and sprites), or whether that would add too much complexity. You would probably have to track more state explicitly as class members, because it's no longer tracked implicitly via the stack. As noted, |
Hi @jfirebaugh, any update on this? |
It's fixed for the next release (3.4.0 alpha5). |
Okay thanks, we'll check it out when alpha 5 is available. |
If the active style of a map view is changed while an offline pack is downloading, the new style will fail to load (i.e., it only shows a black screen) while that download is active.
/cc @jfirebaugh @1ec5 @zugaldia
The text was updated successfully, but these errors were encountered: