From 4e52424b9cb0c6107463ea84ea164f62752d7b89 Mon Sep 17 00:00:00 2001 From: Nadia Barbosa Date: Wed, 23 May 2018 13:33:50 -0700 Subject: Change method name, try to account for tile type --- platform/darwin/src/MGLOfflineRegion.h | 4 +++- 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 () @@ -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(tilePyramidOfflineRegion.minZoom), static_cast(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(tilePyramidOfflineRegion.minZoom), static_cast(tilePyramidOfflineRegion.maxZoom)}); } - (instancetype)initWithOfflineRegionDefinition:(const mbgl::OfflineRegionDefinition &)definition { -- cgit v1.2.1