From c224d0eb08d4b72e0aadb307365c5b09670dc3ac Mon Sep 17 00:00:00 2001 From: Vladimir Byko-Ianko Date: Wed, 6 Mar 2019 09:36:44 +0300 Subject: Start openlr_stat refactoring. --- openlr/road_info_getter.cpp | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'openlr/road_info_getter.cpp') 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; -- cgit v1.2.3