diff --git a/drape_frontend/rule_drawer.cpp b/drape_frontend/rule_drawer.cpp index 0d0c69c187..a82154106a 100644 --- a/drape_frontend/rule_drawer.cpp +++ b/drape_frontend/rule_drawer.cpp @@ -148,19 +148,23 @@ void RuleDrawer::operator()(FeatureType const & f) { f.ParseMetadata(); feature::Metadata const & md = f.GetMetadata(); - string value = md.Get(feature::Metadata::FMD_HEIGHT); - double const kDefaultHeightInMeters = 3.0; + constexpr double kDefaultHeightInMeters = 3.0; + constexpr double kMetersPerLevel = 3.0; double heightInMeters = kDefaultHeightInMeters; + + string value = md.Get(feature::Metadata::FMD_HEIGHT); if (!value.empty()) + { strings::to_double(value, heightInMeters); + } else { value = md.Get(feature::Metadata::FMD_BUILDING_LEVELS); if (!value.empty()) { - strings::to_double(value, heightInMeters); - heightInMeters *= 3.0; + if (strings::to_double(value, heightInMeters)) + heightInMeters *= kMetersPerLevel; } }