launch Bulk Retrieval
Download every tile that intersects sector across every level whose resolution falls in resolution — typically used by "save a region for offline use" flows. Returns the launched Job so the caller can cancel mid-download.
Cache wiring is transparent: if this is a CachedTileSource wrapping a network source
TileStore, every successful fetch writes through to the store. A plain network source (no cache decorator) still works — the user just won't get persistence.
On 404 / empty payloads the tile is counted as skipped. Transport errors retry with backoff (retryTimeoutShort / retryTimeoutLong) and are NEVER skipped: past maxRetries attempts the loop polls at retryTimeoutLong until the fetch succeeds — so an offline gap parks the download until connectivity returns. Cancel the returned Job to stop it.
Parameters
describes the tile pyramid (zoom range, tile size, origin).
world region to download — clipped to LevelSet.sector.
angular resolution range in radians-per-pixel (open interval); maps to the level range via LevelSet.levelForResolution.
coroutine scope; defaults to GlobalScope for a long-running background job.
optional (downloaded, skipped, total) callback fired after every tile.
Download every MVT tile intersecting sector across the resolution range into the layer's vector-tile store — the "save a region for offline use" flow. Takes the same resolution: ClosedRange<Angle> as TiledImageLayer.launchBulkRetrieval (raster) and TiledElevationCoverage.launchBulkRetrieval (elevation) for a uniform bulk API across layer types; the range is mapped to a slippy zoom range via SlippyTiles.zoomForResolution (nearest-neighbor, matching LevelSet.levelForResolution) and clamped to the layer's MvtVectorLayer.minZoom..MvtVectorLayer.maxZoom.
Cache wiring is transparent: when the layer's MvtVectorLayer.source is a CachedTileSource (the usual case after attaching a GeoPackage vector-tile store), each fetch routes through CachedTileSource.bulkFetchTile — bypassing the renderer-side OfflineToggleable.isCacheOnly gate and writing through to the store. A plain network source still downloads (validating the region is reachable) but persists nothing.
Returns the launched Job so the caller can cancel mid-download.
Parameters
world region to download.
angular resolution range in degrees/radians-per-pixel (open-ended range); resolution.start (finest) maps to the deepest zoom, resolution.endInclusive (coarsest) to the shallowest — both clamped to the layer's zoom range.
coroutine scope; defaults to GlobalScope for a long-running background job.
when true, every tile is re-downloaded from the network even if already cached (still write-through). Ignored when the source isn't a CachedTileSource.
optional (downloaded, skipped, total) callback fired after every tile.
Download every OSM-Buildings feature tile intersecting sector into the layer's feature store — the "save a region for offline use" flow.
Unlike the pyramid-walking raster/elevation/MVT bulk drivers, OSM Buildings render at a single slippy zoom (OsmBuildingsLayer.tileZoom, default 15) — there is no pyramid to select from, so this takes no resolution/zoom argument and always caches at tileZoom, the only zoom the renderer ever reads.
Cache wiring is transparent: when OsmBuildingsLayer.source is a CachedTiledFeatureSource (after attaching a GeoPackage feature store), each tile routes through CachedTiledFeatureSource.bulkFetchTile — bypassing the renderer-side OfflineToggleable.isCacheOnly gate and writing the full fetch through to the store. A plain network source still downloads but persists nothing.
Returns the launched Job so the caller can cancel mid-download.
Parameters
world region to download.
coroutine scope; defaults to GlobalScope for a long-running background job.
when true, re-download every tile even if already cached (still write-through). Ignored when the source isn't a CachedTiledFeatureSource.
optional (downloaded, skipped, total) callback fired after every tile.
Download every elevation tile that intersects sector across every tile matrix whose pixel-resolution falls in resolution, writing each tile through to the coverage's cache.
Returns the launched Job so the caller can cancel mid-download; returns null when the coverage's elevationSourceFactory doesn't implement BulkRetrievableElevationSourceFactory — i.e. the coverage isn't cache-aware and there's no cache to populate.
Mirrors the TiledImageLayer-receiver launchBulkRetrieval for image tiles.
Parameters
world region to download — clipped to each matrix's coverage.
range of angular pixel-resolutions to fetch. The finest matrix whose pixelHeight is ≥ resolution.start and the coarsest matrix whose pixelHeight is ≤ resolution.endInclusive bound the iteration; every matrix in between is included.
coroutine scope; defaults to GlobalScope for a long-running background job.
when true, every tile is re-downloaded from the network even if it's already in the cache. Mirrors the image-tile flag of the same name.
optional (downloaded, skipped, total) callback fired after every tile.
Download every tile within sector across the resolution range into the layer's underlying TileStore (when the layer was constructed with a CachedTileSource). Returns the launched Job for cancellation; returns null when the layer's tile factory isn't backed by a TileSourceFactoryAdapter (i.e. no source-based wiring, so bulk-via-source is impossible).
Bulk download is user-initiated and operates on the underlying network + store directly, peeling apart any CachedTileSource decorator so the renderer-side OfflineToggleable.isCacheOnly flag never gates the fetch. A renderer drawing the same source concurrently still respects its cache-only setting — the two paths share the store but use distinct entry points into the network.
Replaces the previous makeLocal JVM/Android methods that hung off TiledImageLayer directly. Same (downloaded, skipped, total) progress semantics, but cache wiring is now external (composed into the TileSourceFactoryAdapter) so this is one helper that works uniformly across platforms.
Parameters
when true, every tile is re-downloaded from the network even if it's already in the cache (still write-through). Mirrors pre-refactor makeLocal's flag of the same name. Ignored when the source isn't a CachedTileSource.