RegionDownloader
@objc
public class RegionDownloader : NSObject
Hey! I need to download this area of the map. No problemo.
This class allows you to download all the tiles of a region of the map.
Internally what it does is to iterate over every tile coordinate within the region and request to a
mapCache to download it by calling its loadTile method.
In order to keep track of the downloaded data you can implement ReguionDownloaderDelegate.
Based on the value of incrementInPercentageNotification the delegate will be called.
Experimental
-
Approximation of the average number of bytes of a tile (used with 256x256 tiles).
Declaration
Swift
static let defaultAverageTileSizeBytes: UInt64 -
Region that will be downloaded.
Initialized in the constructor
Declaration
Swift
public let region: TileCoordsRegion -
Cache that is going to be used for saving/loading the files.
Declaration
Swift
public let mapCache: MapCacheProtocol -
Total number of tiles to be downloaded.
Declaration
Swift
public var totalTilesToDownload: TileNumber { get } -
Number of tiles pending to be downloaded.
Declaration
Swift
public var pendingTilesToDownload: TileNumber { get } -
The variable that actually keeps the count of the downloaded bytes.
Declaration
Swift
private var _downloadedBytes: UInt64 -
Total number of downloaded data bytes.
Declaration
Swift
public var downloadedBytes: UInt64 { get } -
Returns the average
This can be used to estimate the amount of bytes pending to be downloaded.
Declaration
Swift
public var averageTileSizeBytes: UInt64 { get } -
Keeps the number of tiles already downloaded successfully or failed.
Declaration
Swift
@objc dynamic public var downloadedTiles: TileNumber { get } -
Number of successfully downloaded tiles.
Declaration
Swift
private var _successfulTileDownloads: TileNumber -
Keeps the number of tiles already downloaded.
Declaration
Swift
@objc dynamic public var successfulTileDownloads: TileNumber { get } -
Keeps the number of tiles failes to be downloaded. Publicly accessible through failledTIleDownloads.
Declaration
Swift
private var _failedTileDownloads: TileNumber -
Number of tiles to be downloaded
Declaration
Swift
@objc dynamic public var failedTileDownloads: TileNumber { get } -
Percentage to notify thought delegate. If set to >100 will only notify on finish download. If set to a percentage smaller than
downloadedPercentage, it will never notify.Declaration
Swift
public var nextPercentageToNotify: Double -
The downloader will notify the delegate every time this. For example if you set this to 5, it will notify when 5%, 10%, 15%, etc. Default value 5.
Declaration
Swift
public var incrementInPercentageNotification: Double -
Last percentage notified to the deletage.
Declaration
Swift
var lastPercentageNotified: Double -
Percentage of tiles pending to download.
Declaration
Swift
public var downloadedPercentage: Double { get } -
Delegate.
Declaration
Swift
public var delegate: RegionDownloaderDelegate? -
Queue to download the stuff.
Declaration
Swift
lazy var downloaderQueue: DispatchQueue { get set } -
Initializes the downloader with the region and the MapCache.
Declaration
Swift
public init(forRegion region: TileCoordsRegion, mapCache: MapCacheProtocol)Parameters
forRegionthe region to be downloaded.
mapCachethe
MapCacheimplementation used to download and store the downloaded data -
Resets downloader counters.
Declaration
Swift
public func resetCounters() -
Starts download.
Declaration
Swift
public func start() -
Returns an estimation of the total number of bytes the whole region may occupy. Again, it is an estimation.
Declaration
Swift
public func estimateRegionByteSize() -> UInt64
View on GitHub
RegionDownloader Class Reference