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:
authortatiana-yan <tatiana.kondakova@gmail.com>2019-12-10 15:09:09 +0300
committermpimenov <mpimenov@users.noreply.github.com>2019-12-12 15:46:51 +0300
commit5717db29a1c313ce180bbc7d042d9076d2b81792 (patch)
tree0c02de274f5bdabedae4b7454b6a585aac506189 /search/ranker.cpp
parent1cda2a9f9c1d692440f6a835fc207b576d5654cf (diff)
[search] Tweak NormalizeRank.
Diffstat (limited to 'search/ranker.cpp')
-rw-r--r--search/ranker.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/search/ranker.cpp b/search/ranker.cpp
index b348635f02..517258aa26 100644
--- a/search/ranker.cpp
+++ b/search/ranker.cpp
@@ -444,14 +444,17 @@ class RankerResultMaker
}
uint8_t NormalizeRank(uint8_t rank, Model::Type type, m2::PointD const & center,
- string const & country)
+ string const & country, bool isCapital, bool isRelaxed)
{
+ if (isRelaxed)
+ rank /= 5.0;
+
switch (type)
{
- case Model::TYPE_VILLAGE: return rank / 1.5;
+ case Model::TYPE_VILLAGE: return rank / 2.5;
case Model::TYPE_CITY:
{
- if (m_ranker.m_params.m_viewport.IsPointInside(center))
+ if (isCapital || m_ranker.m_params.m_viewport.IsPointInside(center))
return base::Clamp(static_cast<int>(rank) * 2, 0, 0xFF);
storage::CountryInfo info;
@@ -462,8 +465,8 @@ class RankerResultMaker
if (info.IsNotEmpty() && info.m_name == m_ranker.m_params.m_pivotRegion)
return base::Clamp(static_cast<int>(rank * 1.7), 0, 0xFF);
}
- case Model::TYPE_COUNTRY:
- return rank / 1.5;
+ case Model::TYPE_STATE: return rank / 1.5;
+ case Model::TYPE_COUNTRY: return rank;
default: return rank;
}
@@ -490,7 +493,8 @@ public:
search::RankingInfo info;
InitRankingInfo(*ft, center, preRankerResult, info);
- info.m_rank = NormalizeRank(info.m_rank, info.m_type, center, country);
+ info.m_rank = NormalizeRank(info.m_rank, info.m_type, center, country,
+ ftypes::IsCapitalChecker::Instance()(*ft), !info.m_allTokensUsed);
r.SetRankingInfo(move(info));
r.m_provenance = move(preRankerResult.GetProvenance());