Skip to content

Conversation

@JaffaKetchup
Copy link
Owner

@JaffaKetchup JaffaKetchup commented May 24, 2024

This PR builds on v9, and fully embraces the new many-to-many relationship between tiles and stores to allow for more flexibility when constructing the tile provider.
This allows full & easy support for the ideas in #24 and #83: stores may now be treated as regions if wanted, which allows huge amounts of flexibility and a better UX.

Additionally, vector tiles are now supported in theory, as the internal caching/retrieval logic of the ImageProvider has been exposed, although it is out of scope to fully implement support for it.

See CHANGELOG for full details.

(fixes #24)
(fixes #83)
(fixes #84)

…leProvider`

Replaced `FMTCTileProviderSettings.maxStoreLength` with `maxLength` on each store individually
Exposed direct constructor for `FMTCTileProvider`
Refactored and exposed tile provider logic into seperate `getBytes` method
Added more `CacheBehavior` options
Added toggle for hit/miss stat recording
Added tests
Improved documentation
Added internal `_DownloadManagerControlCmd` enum to better describe commands sent to/from the download manager thread (instead of numbers)
Refactored download recovery startup to avoid waiting for manager thread to send already known information
Refactored `RootRecovery` singleton instance mangement to be class-internal
…y update when buffer cleared)

Improved performance of bulk download thread buffer trackers
Added `StoreReadWriteBehavior` for improved customizability
Deprecated `obscuredQueryParams`
Added `urlTransformer` & `urlTransformerOmitKeyValues` [as replacement for above
Refactored `_FMTCImageProvider` internals
Added `DebuggingTileBuilder` to example app
Fixed bugs
Improved performance of circle tile generation algorithm
*Reduced* performance of circle tile count algorithm
Improved performance of tile generation algorithms with specified `end`s
Documentation improvements
Added checks to ensure store exists before attempting to write to it
Improved key correctness for image provider
Deprecated `FMTCStore.getTileProvider`
Improved documentation
Minor example app improvements
@JaffaKetchup JaffaKetchup marked this pull request as ready for review January 2, 2025 23:22
@JaffaKetchup JaffaKetchup merged commit b9aaf09 into main Jan 11, 2025
8 checks passed
@JaffaKetchup JaffaKetchup deleted the multi-store-provider branch January 11, 2025 20:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment