-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Conversation
62200ff
to
4623f85
Compare
This solves #123 🎉 |
Remaining tasks:
|
4623f85
to
4a0005d
Compare
This really looks great. I have a few comments: Seems to me that this might potentially flood the cache with requests when browsing offline. On a slow file system the optional requests could hurt the response latency of the required requests. We don't need to solve this on this PR but we should probably implement some sort of request priority. I'm wondering if the cache knowing that it has already a region cached at certain zoom level, it could return it immediately, but we would still keep going through the pyramid. There is one corner case that I'm not sure it is covered, but if we have sources with different max zoom levels (A, 20 & B, 15), if we are at the zoom 20, we are going to try to get an optional tile at zoom 15 for B, but IMO this one should be a required even if overscaled. |
4a0005d
to
386be17
Compare
The offline requests are made one after another, so there aren't requests for all tiles in the pyramid at the same time; new requests are only generated when the previous one didn't yield a result.
I think the implementation cost of something like that isn't worth the minimal gains from not doing a few intermediate SQLite queries.
No, we calculate what tiles to load per source, so if B has a maxzoom of 15, the ideal tiles are going to be z15 as well, so they're loaded as required. |
This is pretty hard to test: Our current way of testing is to render images, but this feature is only supposed to work when we're rendering in continuous mode. @jfirebaugh any ideas? |
386be17
to
6f12cac
Compare
I'm not sure about some of these renames:
|
I spent today digesting the changes here. Overall this looks like a good direction. I have some ideas about how to restructure the inheritance and class relationships, but I don't think they need to be a blocker. I have been gearing up to do a deep dive on refactoring I don't have any great ideas about testing. I agree that this is an area that doesn't fit into our rendering test pipeline nicely, and it's also difficult to unit test because of the complex object dependencies. I have a feeling a deep-dive refactor would reveal ways to make this area of the code easier to test as well. What I suggest as next actions are:
|
Check out
|
I guess this is mostly a matter of personal preference, and I found the term "Monitor" awkward, but we can change it back if it means less ambiguity. |
iOS release branch is active. @kkaefer 🚢 ? |
6f12cac
to
0e9c0d7
Compare
0e9c0d7
to
ca8b26b
Compare
No description provided.