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 diff --git a/unit_tests/server/parameters_parser.cpp b/unit_tests/server/parameters_parser.cpp index 38766d07d..4dd817615 100644 --- a/unit_tests/server/parameters_parser.cpp +++ b/unit_tests/server/parameters_parser.cpp @@ -383,11 +383,23 @@ BOOST_AUTO_TEST_CASE(valid_nearest_urls) CHECK_EQUAL_RANGE(reference_2.coordinates, result_2->coordinates); } -BOOST_AUTO_TEST_CASE(valid_tile_urls) +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); BOOST_CHECK_EQUAL(reference_1.z, result_1->z);