summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNadia Barbosa <captainbarbosa@users.noreply.github.com>2018-05-23 13:33:50 -0700
committerNadia Barbosa <captainbarbosa@users.noreply.github.com>2018-05-23 13:33:50 -0700
commit4e52424b9cb0c6107463ea84ea164f62752d7b89 (patch)
treeaac4e5704db8f54754cb34aa8094ddcc09bf265d
parent700b1fa6c39c735d80c10e3990abe7cff63a73a3 (diff)
downloadqtlocation-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.h4
-rw-r--r--platform/darwin/src/MGLTilePyramidOfflineRegion.mm16
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 {