From ee012ae2daad463d539d0d376b1474001b602fcb Mon Sep 17 00:00:00 2001 From: karenzshea Date: Wed, 12 Oct 2016 09:54:09 -0400 Subject: [PATCH 1/3] valid tiles are >= z12 --- include/engine/api/tile_parameters.hpp | 3 ++- src/engine/plugins/tile.cpp | 3 +-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/include/engine/api/tile_parameters.hpp b/include/engine/api/tile_parameters.hpp index 34c949a89..728beede7 100644 --- a/include/engine/api/tile_parameters.hpp +++ b/include/engine/api/tile_parameters.hpp @@ -64,7 +64,8 @@ struct TileParameters final // https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames#X_and_Y const auto valid_x = x <= static_cast(std::pow(2., z)) - 1; const auto valid_y = y <= static_cast(std::pow(2., z)) - 1; - const auto valid_z = z < 20; + // zoom limits are due to slippy map and server performance limits + const auto valid_z = z < 20 && z >= 12; return valid_x && valid_y && valid_z; }; diff --git a/src/engine/plugins/tile.cpp b/src/engine/plugins/tile.cpp index 2f483e49e..e79a015dc 100644 --- a/src/engine/plugins/tile.cpp +++ b/src/engine/plugins/tile.cpp @@ -372,8 +372,7 @@ Status TilePlugin::HandleRequest(const std::shared_ptr= MIN_ZOOM_FOR_TURNS) { // Struct to hold info on all the EdgeBasedNodes that are visible in our tile From 1ed8e7e98cd9ed2aeccd95803951ae63bd2559aa Mon Sep 17 00:00:00 2001 From: karenzshea Date: Wed, 12 Oct 2016 10:20:14 -0400 Subject: [PATCH 2/3] test a z12 tile --- unit_tests/server/parameters_parser.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/unit_tests/server/parameters_parser.cpp b/unit_tests/server/parameters_parser.cpp index 38766d07d..52042fa9f 100644 --- a/unit_tests/server/parameters_parser.cpp +++ b/unit_tests/server/parameters_parser.cpp @@ -385,8 +385,8 @@ BOOST_AUTO_TEST_CASE(valid_nearest_urls) BOOST_AUTO_TEST_CASE(valid_tile_urls) { - TileParameters reference_1{1, 2, 3}; - auto result_1 = parseParameters("tile(1,2,3).mvt"); + TileParameters reference_1{1, 2, 12}; + auto result_1 = parseParameters("tile(1,2,12).mvt"); BOOST_CHECK(result_1); BOOST_CHECK_EQUAL(reference_1.x, result_1->x); BOOST_CHECK_EQUAL(reference_1.y, result_1->y); From 615e302b8caea2013006c6b8754d84032cde53ec Mon Sep 17 00:00:00 2001 From: karenzshea Date: Wed, 12 Oct 2016 11:20:01 -0400 Subject: [PATCH 3/3] test for tile that fails IsValid() check --- unit_tests/server/parameters_parser.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/unit_tests/server/parameters_parser.cpp b/unit_tests/server/parameters_parser.cpp index 52042fa9f..4dd817615 100644 --- a/unit_tests/server/parameters_parser.cpp +++ b/unit_tests/server/parameters_parser.cpp @@ -383,10 +383,22 @@ BOOST_AUTO_TEST_CASE(valid_nearest_urls) CHECK_EQUAL_RANGE(reference_2.coordinates, result_2->coordinates); } +BOOST_AUTO_TEST_CASE(invalid_tile_urls) +{ + TileParameters reference_1{1, 2, 3}; + auto result_1 = parseParameters("tile(1,2,3).mvt"); + BOOST_CHECK(result_1); + BOOST_CHECK(!result_1->IsValid()); + BOOST_CHECK_EQUAL(reference_1.x, result_1->x); + BOOST_CHECK_EQUAL(reference_1.y, result_1->y); + BOOST_CHECK_EQUAL(reference_1.z, result_1->z); +} + BOOST_AUTO_TEST_CASE(valid_tile_urls) { TileParameters reference_1{1, 2, 12}; auto result_1 = parseParameters("tile(1,2,12).mvt"); + BOOST_CHECK(result_1->IsValid()); BOOST_CHECK(result_1); BOOST_CHECK_EQUAL(reference_1.x, result_1->x); BOOST_CHECK_EQUAL(reference_1.y, result_1->y);