From e46d3d9b65fc8572b27d1023ebdcaf562720d36e Mon Sep 17 00:00:00 2001 From: vikiawv Date: Sun, 17 Aug 2025 18:25:04 +0200 Subject: [PATCH] [styles] Added Roadshieldcolors in Europe (Belgium-Portugal) [styles] Added roadshield-color Romania also some other, even though only highways there, as there are no letter markers inside the ref code Spain and Turkey need to be checked by person with local knowledge. [styles] corrected Ireland Motorway and Romania DS/DJ-Streets Signed-off-by: vikiawv --- libs/indexer/road_shields_parser.cpp | 149 ++++++++++++++++++++++++++- 1 file changed, 147 insertions(+), 2 deletions(-) diff --git a/libs/indexer/road_shields_parser.cpp b/libs/indexer/road_shields_parser.cpp index e6e2ac1cd..660fd10d2 100644 --- a/libs/indexer/road_shields_parser.cpp +++ b/libs/indexer/road_shields_parser.cpp @@ -437,8 +437,127 @@ public: {"S", RoadShieldType::Generic_Blue}, {"B", RoadShieldType::Generic_Blue}, {"L", RoadShieldType::Generic_White}}) - { - } + {} +}; + +class BelgiumRoadShieldParser : public SimpleRoadShieldParser +{ +public: + explicit BelgiumRoadShieldParser(std::string const & baseRoadNumber) + : SimpleRoadShieldParser(baseRoadNumber, + {{"A", RoadShieldType::Generic_White}, {"N", RoadShieldType::Generic_Blue}}) + {} +}; + +class GreeceRoadShieldParser : public SimpleRoadShieldParser +{ +public: + explicit GreeceRoadShieldParser(std::string const & baseRoadNumber) + : SimpleRoadShieldParser(baseRoadNumber, + {{"Α", RoadShieldType::Generic_Green}, {"Ε", RoadShieldType::Generic_Blue}}) + {} +}; + +class IrelandRoadShieldParser : public SimpleRoadShieldParser +{ +public: + explicit IrelandRoadShieldParser(std::string const & baseRoadNumber) + : SimpleRoadShieldParser(baseRoadNumber, {{"M", RoadShieldType::Generic_Blue}, + {"N", RoadShieldType::UK_Highway}, + {"R", RoadShieldType::Generic_White}, + {"L", RoadShieldType::Generic_White}}) + {} +}; + +class ItalyRoadShieldParser : public SimpleRoadShieldParser +{ +public: + explicit ItalyRoadShieldParser(std::string const & baseRoadNumber) + : SimpleRoadShieldParser(baseRoadNumber, {{"A", RoadShieldType::Generic_Green}, + {"SS", RoadShieldType::Generic_Blue}, + {"SR", RoadShieldType::Generic_Blue}, + {"SP", RoadShieldType::Generic_Blue}}) + {} +}; + +class LativaRoadShieldParser : public SimpleRoadShieldParser +{ +public: + explicit LativaRoadShieldParser(std::string const & baseRoadNumber) + : SimpleRoadShieldParser(baseRoadNumber, {{"A", RoadShieldType::Generic_Red}, {"P", RoadShieldType::Generic_Blue}}) + {} +}; + +class MoldovaRoadShieldParser : public SimpleRoadShieldParser +{ +public: + explicit MoldovaRoadShieldParser(std::string const & baseRoadNumber) + : SimpleRoadShieldParser(baseRoadNumber, {{"M", RoadShieldType::Generic_Red}, {"R", RoadShieldType::Generic_Blue}}) + {} +}; + +class PortugalRoadShieldParser : public SimpleRoadShieldParser +{ +public: + explicit PortugalRoadShieldParser(std::string const & baseRoadNumber) + : SimpleRoadShieldParser(baseRoadNumber, {{"A", RoadShieldType::Generic_Blue}, + {"N", RoadShieldType::Generic_White}, + {"EN", RoadShieldType::Generic_White}, + {"R", RoadShieldType::Generic_Orange}, + {"EM", RoadShieldType::Generic_Orange}, + {"CM", RoadShieldType::Generic_Orange}}) + {} +}; + +class RomaniaRoadShieldParser : public SimpleRoadShieldParser +{ +public: + explicit RomaniaRoadShieldParser(std::string const & baseRoadNumber) + : SimpleRoadShieldParser(baseRoadNumber, {{"A", RoadShieldType::Generic_Green}, + {"DN", RoadShieldType::Generic_Red}, + {"DJ", RoadShieldType::Generic_Blue}, + {"DC", RoadShieldType::Generic_Blue}}) + {} +}; + +class SerbiaRoadShieldParser : public SimpleRoadShieldParser +{ +public: + explicit SerbiaRoadShieldParser(std::string const & baseRoadNumber) + : SimpleRoadShieldParser(baseRoadNumber, {{"A", RoadShieldType::Generic_Green}}) + {} +}; + +class SlovakiaRoadShieldParser : public SimpleRoadShieldParser +{ +public: + explicit SlovakiaRoadShieldParser(std::string const & baseRoadNumber) + : SimpleRoadShieldParser(baseRoadNumber, {{"D", RoadShieldType::Generic_Red}, {"R", RoadShieldType::Generic_Red}}) + {} +}; + +class SloveniaRoadShieldParser : public SimpleRoadShieldParser +{ +public: + explicit SloveniaRoadShieldParser(std::string const & baseRoadNumber) + : SimpleRoadShieldParser(baseRoadNumber, {{"A", RoadShieldType::Generic_Green}}) + {} +}; + +class SwitzerlandRoadShieldParser : public SimpleRoadShieldParser +{ +public: + explicit SwitzerlandRoadShieldParser(std::string const & baseRoadNumber) + : SimpleRoadShieldParser(baseRoadNumber, {{"A", RoadShieldType::Generic_Red}}) + {} +}; + +class LiechtensteinRoadShieldParser : public SimpleRoadShieldParser +{ +public: + explicit LiechtensteinRoadShieldParser(std::string const & baseRoadNumber) + : SimpleRoadShieldParser(baseRoadNumber, {{"A", RoadShieldType::Generic_Red}}) + {} }; class RussiaRoadShieldParser : public DefaultTypeRoadShieldParser @@ -655,6 +774,32 @@ RoadShieldsSetT GetRoadShields(std::string const & mwmName, std::string const & return IndiaRoadShieldParser(roadNumber).GetRoadShields(); if (mwmName == "Austria") return AustriaRoadShieldParser(roadNumber).GetRoadShields(); + if (mwmName == "Belgium") + return BelgiumRoadShieldParser(roadNumber).GetRoadShields(); + if (mwmName == "Greece") + return GreeceRoadShieldParser(roadNumber).GetRoadShields(); + if (mwmName == "Ireland") + return IrelandRoadShieldParser(roadNumber).GetRoadShields(); + if (mwmName == "Italy") + return ItalyRoadShieldParser(roadNumber).GetRoadShields(); + if (mwmName == "Lativa") + return LativaRoadShieldParser(roadNumber).GetRoadShields(); + if (mwmName == "Moldova") + return MoldovaRoadShieldParser(roadNumber).GetRoadShields(); + if (mwmName == "Portugal") + return PortugalRoadShieldParser(roadNumber).GetRoadShields(); + if (mwmName == "Romania") + return RomaniaRoadShieldParser(roadNumber).GetRoadShields(); + if (mwmName == "Serbia") + return SerbiaRoadShieldParser(roadNumber).GetRoadShields(); + if (mwmName == "Slovakia") + return SlovakiaRoadShieldParser(roadNumber).GetRoadShields(); + if (mwmName == "Slovenia") + return SloveniaRoadShieldParser(roadNumber).GetRoadShields(); + if (mwmName == "Switzerland") + return SwitzerlandRoadShieldParser(roadNumber).GetRoadShields(); + if (mwmName == "Liechtenstein") + return LiechtensteinRoadShieldParser(roadNumber).GetRoadShields(); if (mwmName == "Russia") return RussiaRoadShieldParser(roadNumber).GetRoadShields(); if (mwmName == "France")