diff options
Diffstat (limited to 'platform/darwin/src/MGLTilePyramidOfflineRegion.mm')
-rw-r--r-- | platform/darwin/src/MGLTilePyramidOfflineRegion.mm | 16 |
1 files changed, 12 insertions, 4 deletions
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 { |