diff options
author | vng <viktor.govako@gmail.com> | 2011-01-09 16:11:43 +0300 |
---|---|---|
committer | Alex Zolotarev <alex@maps.me> | 2015-09-23 01:09:35 +0300 |
commit | 83011c67dce2c938ff88d7520d5ad64fef17eca7 (patch) | |
tree | 1a9f1d91d9e57a6fb04e80a59238f79af0cd6786 /indexer/scale_index_builder.hpp | |
parent | 391fc9aadf51659dff7286cd29197c3606c56c47 (diff) |
Build index for the best geometry (highest drawable scale).
Diffstat (limited to 'indexer/scale_index_builder.hpp')
-rw-r--r-- | indexer/scale_index_builder.hpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/indexer/scale_index_builder.hpp b/indexer/scale_index_builder.hpp index d301deb2ce..1184e93316 100644 --- a/indexer/scale_index_builder.hpp +++ b/indexer/scale_index_builder.hpp @@ -49,6 +49,13 @@ STATIC_ASSERT(sizeof(CellFeaturePair) == 12); template <class SorterT> class FeatureCoverer { + int GetGeometryScale() const + { + // Do not pass actual level. We should build index for the best geometry (pass -1). + return -1; + //return m_ScaleRange.second-1; + } + public: FeatureCoverer(uint32_t bucket, SorterT & sorter, @@ -64,7 +71,7 @@ public: { if (FeatureShouldBeIndexed(f)) { - vector<int64_t> const cells = covering::CoverFeature(f, m_ScaleRange.second-1); + vector<int64_t> const cells = covering::CoverFeature(f, GetGeometryScale()); for (vector<int64_t>::const_iterator it = cells.begin(); it != cells.end(); ++it) m_Sorter.Add(CellFeaturePair(*it, offset)); ++m_NumFeatures; @@ -75,8 +82,8 @@ public: template <class TFeature> bool FeatureShouldBeIndexed(TFeature const & f) const { - if (f.IsEmptyGeometry(m_ScaleRange.second-1)) - return false; + if (f.IsEmptyGeometry(GetGeometryScale())) + return false; uint32_t const minScale = feature::MinDrawableScaleForFeature(f); return (m_ScaleRange.first <= minScale && minScale < m_ScaleRange.second); |