diff options
author | Vladimir Byko-Ianko <v.bykoianko@corp.mail.ru> | 2019-03-06 09:36:44 +0300 |
---|---|---|
committer | Vladimir Byko-Ianko <v.bykoianko@corp.mail.ru> | 2019-03-10 08:30:00 +0300 |
commit | c224d0eb08d4b72e0aadb307365c5b09670dc3ac (patch) | |
tree | effbb972a6df8ea8fd15cc0b1c1c20f152b1643e /openlr/road_info_getter.cpp | |
parent | 8dceb19e7c17039c34de13964905054e0e2ed9da (diff) |
Start openlr_stat refactoring.
Diffstat (limited to 'openlr/road_info_getter.cpp')
-rw-r--r-- | openlr/road_info_getter.cpp | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/openlr/road_info_getter.cpp b/openlr/road_info_getter.cpp index 8ca5c5c884..97c2d35c28 100644 --- a/openlr/road_info_getter.cpp +++ b/openlr/road_info_getter.cpp @@ -8,6 +8,23 @@ #include "std/iterator.hpp" +namespace +{ +openlr::FunctionalRoadClass HighwayClassToFunctionalRoadClass(ftypes::HighwayClass const & hwClass) +{ + switch (hwClass) + { + case ftypes::HighwayClass::Trunk: return openlr::FunctionalRoadClass::FRC0; + case ftypes::HighwayClass::Primary: return openlr::FunctionalRoadClass::FRC1; + case ftypes::HighwayClass::Secondary: return openlr::FunctionalRoadClass::FRC2; + case ftypes::HighwayClass::Tertiary: return openlr::FunctionalRoadClass::FRC3; + case ftypes::HighwayClass::LivingStreet: return openlr::FunctionalRoadClass::FRC4; + case ftypes::HighwayClass::Service: return openlr::FunctionalRoadClass::FRC5; + default: return openlr::FunctionalRoadClass::FRC7; + } +} +} + namespace openlr { RoadInfoGetter::RoadInfoGetter(DataSource const & dataSource) @@ -26,8 +43,13 @@ RoadInfoGetter::RoadInfo RoadInfoGetter::Get(FeatureID const & fid) CHECK(g.GetOriginalFeatureByIndex(fid.m_index, ft), ()); RoadInfo info; - info.m_frc = GetFunctionalRoadClass(feature::TypesHolder(ft)); +// info.m_frc = GetFunctionalRoadClass(feature::TypesHolder(ft)); info.m_fow = GetFormOfWay(feature::TypesHolder(ft)); + info.m_hwClass = ftypes::GetHighwayClass(feature::TypesHolder(ft)); + info.m_link = ftypes::IsLinkChecker::Instance()(ft); + info.m_oneWay = ftypes::IsOneWayChecker::Instance()(ft); + info.m_frc = HighwayClassToFunctionalRoadClass(info.m_hwClass); + it = m_cache.emplace(fid, info).first; return it->second; |