diff options
author | vng <viktor.govako@gmail.com> | 2011-10-12 16:56:06 +0400 |
---|---|---|
committer | Alex Zolotarev <alex@maps.me> | 2015-09-23 01:25:53 +0300 |
commit | 66ac8c9240f3ba23ad9b058b2971d9b2f2f37bc9 (patch) | |
tree | 1a8f2697875fd0b11652febf23dc8d6c5b19f10b /indexer/feature_loader.cpp | |
parent | eddeb5176f2ff707ced4cea336b29a49bc319be5 (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.cpp | 12 |
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); |