diff options
author | Nadia Barbosa <captainbarbosa@users.noreply.github.com> | 2018-05-23 13:33:50 -0700 |
---|---|---|
committer | Nadia Barbosa <captainbarbosa@users.noreply.github.com> | 2018-05-23 13:33:50 -0700 |
commit | 4e52424b9cb0c6107463ea84ea164f62752d7b89 (patch) | |
tree | aac4e5704db8f54754cb34aa8094ddcc09bf265d | |
parent | 700b1fa6c39c735d80c10e3990abe7cff63a73a3 (diff) | |
download | qtlocation-mapboxgl-upstream/nb-tile-count.tar.gz |
Change method name, try to account for tile typeupstream/nb-tile-count
-rw-r--r-- | platform/darwin/src/MGLOfflineRegion.h | 4 | ||||
-rw-r--r-- | platform/darwin/src/MGLTilePyramidOfflineRegion.mm | 16 |
2 files changed, 15 insertions, 5 deletions
diff --git a/platform/darwin/src/MGLOfflineRegion.h b/platform/darwin/src/MGLOfflineRegion.h index a855ec5614..ad9731eb33 100644 --- a/platform/darwin/src/MGLOfflineRegion.h +++ b/platform/darwin/src/MGLOfflineRegion.h @@ -2,6 +2,8 @@ NS_ASSUME_NONNULL_BEGIN +@class MGLTileSource; + /** An object conforming to the `MGLOfflineRegion` protocol determines which resources are required by an `MGLOfflinePack` object. At present, only @@ -13,7 +15,7 @@ NS_ASSUME_NONNULL_BEGIN /** The number of tiles needed to load one of the style’s sources within the region. */ -@property (nonatomic, readonly) uint64_t tileCount; +-(uint64_t)countTilesForTileSource:(MGLTileSource *)tileSource; @end diff --git a/platform/darwin/src/MGLTilePyramidOfflineRegion.mm b/platform/darwin/src/MGLTilePyramidOfflineRegion.mm index 7ebaf801a1..eb6680a443 100644 --- a/platform/darwin/src/MGLTilePyramidOfflineRegion.mm +++ b/platform/darwin/src/MGLTilePyramidOfflineRegion.mm @@ -8,6 +8,7 @@ #import "MGLGeometry_Private.h" #import "MGLStyle.h" #import "MGLTileSource.h" +#import "MGLVectorTileSource.h" @interface MGLTilePyramidOfflineRegion () <MGLOfflineRegion_Private> @@ -54,11 +55,18 @@ return self; } --(uint64_t)tileCount:(MGLTileSource *)tileSource { +-(uint64_t)countTilesForTileSource:(MGLTileSource *)tileSource { auto tilePyramidOfflineRegion = [self offlineRegionDefinition]; - // TODO: Figure out how to work with the MGLTileSource here - // TODO: Pass tile type and size into the below method - return tilePyramidOfflineRegion.tileCount(mbgl::style::SourceType::Vector, 512, {static_cast<unsigned char>(tilePyramidOfflineRegion.minZoom), static_cast<unsigned char>(tilePyramidOfflineRegion.maxZoom)}); + + mbgl::style::SourceType sourceType; + + if ([tileSource isKindOfClass:[MGLVectorTileSource class]]) { + sourceType = mbgl::style::SourceType::Vector; + } else { + sourceType = mbgl::style::SourceType::Raster; + } + + return tilePyramidOfflineRegion.tileCount(sourceType, 512, {static_cast<unsigned char>(tilePyramidOfflineRegion.minZoom), static_cast<unsigned char>(tilePyramidOfflineRegion.maxZoom)}); } - (instancetype)initWithOfflineRegionDefinition:(const mbgl::OfflineRegionDefinition &)definition { |