MCPcopy Create free account
hub / github.com/comaps/comaps / ModifyDACHStreet

Function ModifyDACHStreet

libs/search/ranker.cpp:73–111  ·  view source on GitHub ↗

This function supports only street names like "abcdstrasse"/"abcd strasse". @see Also FeatureNameInserter::AddDACHNames

Source from the content-addressed store, hash-verified

71// This function supports only street names like "abcdstrasse"/"abcd strasse".
72/// @see Also FeatureNameInserter::AddDACHNames
73vector<vector<strings::UniString>> ModifyDACHStreet(vector<strings::UniString> const & streetTokens)
74{
75 auto const size = streetTokens.size();
76 ASSERT_GREATER(size, 0, ());
77
78 vector<vector<strings::UniString>> result;
79 for (auto const & sx : GetDACHStreets())
80 {
81 if (!strings::EndsWith(streetTokens.back(), sx.first))
82 continue;
83
84 if (streetTokens.back() == sx.first)
85 {
86 if (size == 1)
87 return {};
88
89 // "Abcd strasse" -> "abcdstrasse".
90 result.emplace_back(streetTokens.begin(), streetTokens.end() - 1);
91 result.back().back() += sx.first;
92
93 // "Abcd strasse" -> "abcdstr".
94 result.emplace_back(streetTokens.begin(), streetTokens.end() - 1);
95 result.back().back() += sx.second;
96 return result;
97 }
98
99 // "Abcdstrasse" -> "abcd strasse".
100 auto const name = strings::UniString(streetTokens.back().begin(), streetTokens.back().end() - sx.first.size());
101 result.push_back(streetTokens);
102 result.back().back() = name;
103 result.back().push_back(sx.first);
104
105 // "Abcdstrasse" -> "abcdstr".
106 result.push_back(streetTokens);
107 result.back().back() = name + sx.second;
108 }
109
110 return result;
111}
112
113vector<strings::UniString> RemoveStreetSynonyms(vector<strings::UniString> const & tokens)
114{

Callers 1

GetNameScoresFunction · 0.85

Calls 8

EndsWithFunction · 0.85
backMethod · 0.80
UniStringClass · 0.70
sizeMethod · 0.45
emplace_backMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected