diff --git a/generator/feature_sorter.cpp b/generator/feature_sorter.cpp index 23fa62e9c8..79df4111c9 100644 --- a/generator/feature_sorter.cpp +++ b/generator/feature_sorter.cpp @@ -463,13 +463,17 @@ namespace feature SimplifyPoints(*iH, simplified.back(), level, isCoast, rect); - if (!IsGoodArea(simplified.back(), level)) - simplified.pop_back(); - else + // Do not skip small coastline polygons for the first scale level. + if ((isCoast && i == 0) || IsGoodArea(simplified.back(), level)) { // At this point we don't need last point equal to first. simplified.back().pop_back(); } + else + { + // Remove small polygon. + simplified.pop_back(); + } } if (!simplified.empty()) diff --git a/indexer/feature_impl.hpp b/indexer/feature_impl.hpp index dc40b3257f..ae0bbde3fe 100644 --- a/indexer/feature_impl.hpp +++ b/indexer/feature_impl.hpp @@ -5,7 +5,7 @@ namespace feature { - static int g_arrWorldScales[] = { 5, 7, 9 }; // 9 = scales::GetUpperWorldScale() + static int g_arrWorldScales[] = { 3, 5, 7, 9 }; // 9 = scales::GetUpperWorldScale() static int g_arrCountryScales[] = { 12, 15, 17 }; // 17 = scales::GetUpperScale() inline string GetTagForIndex(char const * prefix, int ind)