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
path: root/search
diff options
context:
space:
mode:
authorVladiMihaylenko <vxmihaylenko@gmail.com>2016-07-14 12:32:14 +0300
committerVladiMihaylenko <vxmihaylenko@gmail.com>2016-07-14 14:20:10 +0300
commit203b634334051ed7810293010009e16a2adac908 (patch)
treef556c81c3b93dc9bb4d43dbb9591a00eed6f63cd /search
parentbc98ef2a672d55fd7fb2ddbf97c573488d4ca574 (diff)
[search] Added hotel rating and hotel pricing to result metadata.
Diffstat (limited to 'search')
-rw-r--r--search/intermediate_result.cpp26
-rw-r--r--search/result.hpp5
2 files changed, 26 insertions, 5 deletions
diff --git a/search/intermediate_result.cpp b/search/intermediate_result.cpp
index fb313a8be5..f460cce513 100644
--- a/search/intermediate_result.cpp
+++ b/search/intermediate_result.cpp
@@ -26,7 +26,8 @@ namespace search
/// All constants in meters.
double const DIST_EQUAL_RESULTS = 100.0;
double const DIST_SAME_STREET = 5000.0;
-
+char const * const kEmptyRatingSymbol = "-";
+char const * const kPricingSymbol = "$";
void ProcessMetadata(FeatureType const & ft, Result::Metadata & meta)
{
@@ -52,9 +53,26 @@ void ProcessMetadata(FeatureType const & ft, Result::Metadata & meta)
meta.m_stars = my::clamp(meta.m_stars, 0, 5);
else
meta.m_stars = 0;
-
- meta.m_isSponsoredHotel = ftypes::IsBookingChecker::Instance()(ft);
-
+
+ bool const isSponsoredHotel = ftypes::IsBookingChecker::Instance()(ft);
+ meta.m_isSponsoredHotel = isSponsoredHotel;
+
+ if (isSponsoredHotel)
+ {
+ auto const r = src.Get(feature::Metadata::FMD_RATING);
+ char const * const rating = r.empty() ? kEmptyRatingSymbol : r.c_str();
+ meta.m_hotelRating = rating;
+
+ int pricing;
+ strings::to_int(src.Get(feature::Metadata::FMD_PRICE_RATE), pricing);
+ string pricingStr;
+ CHECK_GREATER_OR_EQUAL(pricing, 0, ("Pricing must be positive!"));
+ for (auto i = 0; i < pricing; i++)
+ pricingStr.append(kPricingSymbol);
+
+ meta.m_hotelApproximatePricing = pricingStr;
+ }
+
meta.m_isInitialized = true;
}
diff --git a/search/result.hpp b/search/result.hpp
index 19d1576411..b3497bf0c5 100644
--- a/search/result.hpp
+++ b/search/result.hpp
@@ -35,7 +35,8 @@ public:
int m_stars = 0; // Valid only if not 0. Used for hotels.
bool m_isSponsoredHotel = false; // Used for hotels.
osm::YesNoUnknown m_isOpenNow = osm::Unknown; // Valid for any result.
-
+ string m_hotelApproximatePricing;
+ string m_hotelRating;
/// True if the struct is already assigned or need to be calculated otherwise.
bool m_isInitialized = false;
};
@@ -59,6 +60,8 @@ public:
string const & GetAddress() const { return m_address; }
string const & GetFeatureType() const { return m_type; }
string const & GetCuisine() const { return m_metadata.m_cuisine; }
+ string const & GetHotelRating() const { return m_metadata.m_hotelRating; }
+ string const & GetHotelApproximatePricing() const { return m_metadata.m_hotelApproximatePricing; }
//@}
osm::YesNoUnknown IsOpenNow() const { return m_metadata.m_isOpenNow; }