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/render
diff options
context:
space:
mode:
authorConstantin Shalnev <c.shalnev@corp.mail.ru>2015-09-29 14:32:23 +0300
committerConstantin Shalnev <c.shalnev@corp.mail.ru>2015-09-29 16:10:57 +0300
commita50698224d10d72d7e4f3f70a19cb16fc9a2909a (patch)
treef1c3ebb998910cfcd0417ed023211a49deedf6e7 /render
parenta282d3a0fc3f31947fb42b4b2862e1071b903a04 (diff)
Support text tag values addr:housename and addr:housenumber
Diffstat (limited to 'render')
-rw-r--r--render/feature_styler.cpp43
1 files changed, 28 insertions, 15 deletions
diff --git a/render/feature_styler.cpp b/render/feature_styler.cpp
index a4dd66f138..368afb33bf 100644
--- a/render/feature_styler.cpp
+++ b/render/feature_styler.cpp
@@ -102,15 +102,9 @@ namespace di
// m_primaryText.clear();
//}
- string houseNumber;
- if (ftypes::IsBuildingChecker::Instance()(f))
- {
- houseNumber = f.GetHouseNumber();
- // Mark houses without names/numbers so user can select them by single tap.
- if (houseNumber.empty() && m_primaryText.empty())
- houseNumber = "·";
- }
- bool const hasName = !m_primaryText.empty() || !houseNumber.empty();
+ bool const isBuilding = ftypes::IsBuildingChecker::Instance()(f);
+
+ bool const hasName = !m_primaryText.empty() || isBuilding;
m_refText = f.GetRoadNumber();
@@ -159,6 +153,8 @@ namespace di
bool hasSecondaryText = false;
+ drule::text_type_t textType = drule::text_type_name;
+
for (size_t i = 0; i < count; ++i)
{
double depth = keys[i].m_priority;
@@ -211,6 +207,8 @@ namespace di
CaptionDefProto const * pCap0 = m_rules[i].m_rule->GetCaption(0);
if (pCap0)
{
+ textType = m_rules[i].m_rule->GetCaptionTextType(0);
+
if (!m_hasPathText && hasName && (m_geometryType == feature::GEOM_LINE))
{
m_hasPathText = true;
@@ -232,13 +230,28 @@ namespace di
m_secondaryText.clear();
}
- // Get or concat house number if feature has one.
- if (!houseNumber.empty())
+ if (isBuilding)
{
- if (m_primaryText.empty() || houseNumber.find(m_primaryText) != string::npos)
- houseNumber.swap(m_primaryText);
- else
- m_primaryText = m_primaryText + " (" + houseNumber + ")";
+ string houseNumber = f.GetHouseNumber();
+ // Mark houses without names/numbers so user can select them by single tap.
+ if (houseNumber.empty() && m_primaryText.empty())
+ houseNumber = "·";
+
+ if (textType == drule::text_type_housenumber)
+ {
+ m_primaryText = move(houseNumber);
+ }
+ else if (textType == drule::text_type_name)
+ {
+ // Get or concat house number if feature has one.
+ if (!houseNumber.empty())
+ {
+ if (m_primaryText.empty() || houseNumber.find(m_primaryText) != string::npos)
+ m_primaryText = move(houseNumber);
+ else
+ m_primaryText = m_primaryText + " (" + houseNumber + ")";
+ }
+ }
}
// placing a text on the path