From 55613019590b3dd194cf141bea6ee0f9e7a7c6c1 Mon Sep 17 00:00:00 2001 From: vng Date: Mon, 17 Oct 2011 15:47:30 +0300 Subject: [PATCH] [Experimental] Do no skip small coastline polygons with first scale level. --- generator/feature_sorter.cpp | 10 +++++++--- indexer/feature_impl.hpp | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) 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)