[core] Support a range of zooms in TileRange. Accounts for TilePyramid requesting parent tiles of ideal zoom tiles.

This commit is contained in:
Asheem Mamoowala
2018-02-16 12:38:23 -08:00
committed by Jason Wray
parent c2be33fa41
commit 054d4d5ad6
3 changed files with 57 additions and 23 deletions

View File

@@ -1,4 +1,3 @@
#include <mbgl/util/tile_range.hpp>
#include <mbgl/util/geo.hpp>
#include <mbgl/map/transform.hpp>
@@ -25,6 +24,18 @@ TEST(TileRange, ContainsBoundsFromTile) {
EXPECT_TRUE(range.contains(CanonicalTileID(10, 162, 395)));
}
}
TEST(TileRange, ContainsMultiZoom) {
auto wrappedBounds = LatLngBounds::hull({ 37.6609, -122.5744 }, { 37.8271, -122.3204 });
auto range = util::TileRange::fromLatLngBounds(wrappedBounds, 5, 13);
EXPECT_FALSE(range.contains(CanonicalTileID(0, 0, 0)));
EXPECT_FALSE(range.contains(CanonicalTileID(5, 3, 11)));
EXPECT_FALSE(range.contains(CanonicalTileID(6, 9, 22)));
EXPECT_TRUE(range.contains(CanonicalTileID(5, 5, 12)));
EXPECT_TRUE(range.contains(CanonicalTileID(6, 10, 24)));
EXPECT_TRUE(range.contains(CanonicalTileID(13, 1310, 3166)));
}
TEST(TileRange, ContainsIntersectingTiles) {
auto bounds = LatLngBounds::hull({ 37.6609, -122.5744 }, { 37.8271, -122.3204 });
auto range = util::TileRange::fromLatLngBounds(bounds, 13);