Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvng <viktor.govako@gmail.com>2011-10-12 16:56:06 +0400
committerAlex Zolotarev <alex@maps.me>2015-09-23 01:25:53 +0300
commit66ac8c9240f3ba23ad9b058b2971d9b2f2f37bc9 (patch)
tree1a8f2697875fd0b11652febf23dc8d6c5b19f10b /indexer/feature_loader.cpp
parenteddeb5176f2ff707ced4cea336b29a49bc319be5 (diff)
Use best geometry when deserialize scale is greater than DataHeader::GetLastScale.
Diffstat (limited to 'indexer/feature_loader.cpp')
-rw-r--r--indexer/feature_loader.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/indexer/feature_loader.cpp b/indexer/feature_loader.cpp
index fed7c4cee8..db85154e7d 100644
--- a/indexer/feature_loader.cpp
+++ b/indexer/feature_loader.cpp
@@ -284,6 +284,10 @@ int LoaderCurrent::GetScaleIndex(int scale) const
{
int const count = m_Info.GetScalesCount();
+ // In case of WorldCoasts we should get correct last geometry.
+ if (scale > m_Info.GetLastScale())
+ scale = -1;
+
switch (scale)
{
case -2: return 0;
@@ -301,6 +305,10 @@ int LoaderCurrent::GetScaleIndex(int scale, offsets_t const & offsets) const
int ind = -1;
int const count = static_cast<int>(offsets.size());
+ // In case of WorldCoasts we should get correct last geometry.
+ if (scale > m_Info.GetLastScale())
+ scale = -1;
+
switch (scale)
{
case -1:
@@ -317,8 +325,8 @@ int LoaderCurrent::GetScaleIndex(int scale, offsets_t const & offsets) const
default:
{
- int const count = m_Info.GetScalesCount();
- for (int i = 0; i < count; ++i)
+ int const n = m_Info.GetScalesCount();
+ for (int i = 0; i < n; ++i)
{
if (scale <= m_Info.GetScale(i))
return (offsets[i] != kInvalidOffset ? i : -1);