diff --git a/search/intermediate_result.cpp b/search/intermediate_result.cpp index 0ff555997b..a5d6bbf853 100644 --- a/search/intermediate_result.cpp +++ b/search/intermediate_result.cpp @@ -1,6 +1,5 @@ #include "intermediate_result.hpp" #include "../indexer/feature_rect.hpp" -#include "../indexer/feature_visibility.hpp" #include "../base/string_utils.hpp" namespace search @@ -10,9 +9,10 @@ namespace impl IntermediateResult::IntermediateResult(FeatureType const & feature, string const & displayName, - int matchPenalty) + int matchPenalty, + int minVisibleScale) : m_str(displayName), m_rect(feature::GetFeatureViewport(feature)), m_matchPenalty(matchPenalty), - m_minDrawZoomLevel(feature::MinDrawableScaleForFeature(feature)) + m_minVisibleScale(minVisibleScale) { } @@ -20,8 +20,8 @@ bool IntermediateResult::operator < (IntermediateResult const & o) const { if (m_matchPenalty != o.m_matchPenalty) return m_matchPenalty < o.m_matchPenalty; - if (m_minDrawZoomLevel != o.m_minDrawZoomLevel) - return m_minDrawZoomLevel < o.m_minDrawZoomLevel; + if (m_minVisibleScale != o.m_minVisibleScale) + return m_minVisibleScale < o.m_minVisibleScale; return false; } @@ -30,7 +30,7 @@ Result IntermediateResult::GenerateFinalResult() const #ifdef DEBUG return Result(m_str + ' ' + strings::to_string(m_matchPenalty) - + ' ' + strings::to_string(m_minDrawZoomLevel), + + ' ' + strings::to_string(m_minVisibleScale), m_rect); #else return Result(m_str, m_rect); diff --git a/search/intermediate_result.hpp b/search/intermediate_result.hpp index 61e539dbf4..b22c128a3e 100644 --- a/search/intermediate_result.hpp +++ b/search/intermediate_result.hpp @@ -10,7 +10,10 @@ namespace impl class IntermediateResult { public: - IntermediateResult(FeatureType const & feature, string const & displayName, int matchPenalty); + IntermediateResult(FeatureType const & feature, + string const & displayName, + int matchPenalty, + int minVisibleScale); bool operator < (IntermediateResult const & o) const; @@ -20,7 +23,7 @@ private: string m_str; m2::RectD m_rect; int m_matchPenalty; - int m_minDrawZoomLevel; + int m_minVisibleScale; }; } // namespace search::impl diff --git a/search/query.cpp b/search/query.cpp index c5e1aa41a8..df648ae073 100644 --- a/search/query.cpp +++ b/search/query.cpp @@ -2,6 +2,7 @@ #include "delimiters.hpp" #include "keyword_matcher.hpp" #include "string_match.hpp" +#include "../indexer/feature_visibility.hpp" #include "../base/stl_add.hpp" namespace search @@ -73,7 +74,12 @@ struct FeatureProcessor uint32_t const matchScore = matcher.GetMatchScore(); if (matchScore <= maxKeywordMatchScore) { - m_query.AddResult(IntermediateResult(feature, matcher.GetBestPrefixMatch(), matchScore)); + int const minVisibleScale = feature::MinDrawableScaleForText(feature); + // if (minVisibleScale < 0) + // return; + + m_query.AddResult(IntermediateResult(feature, matcher.GetBestPrefixMatch(), + matchScore, minVisibleScale)); } } }