From 0b37b3645761e8f024743df2e538b8a6be92478e Mon Sep 17 00:00:00 2001 From: Mikhail Gorbushin Date: Tue, 19 Nov 2019 11:06:15 +0300 Subject: [PATCH] [generator] Small refactoring of CameraProcessor::CameraInfo --- generator/collector_camera.cpp | 17 ++++++++++------- generator/collector_camera.hpp | 8 +++----- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/generator/collector_camera.cpp b/generator/collector_camera.cpp index 5ca3199cfb..d5edf3ef44 100644 --- a/generator/collector_camera.cpp +++ b/generator/collector_camera.cpp @@ -35,13 +35,17 @@ namespace routing { size_t const CameraProcessor::kMaxSpeedSpeedStringLength = 32; -boost::optional GetMaxSpeed(std::string const & maxSpeedString) +boost::optional GetMaxSpeedKmPH(std::string const & maxSpeedString) { routing::SpeedInUnits speed; if (!generator::ParseMaxspeedTag(maxSpeedString, speed) || !speed.IsNumeric()) return {}; - return measurement_utils::ToSpeedKmPH(speed.GetSpeed(), speed.GetUnits()); + auto const speedKmPh = measurement_utils::ToSpeedKmPH(speed.GetSpeed(), speed.GetUnits()); + if (speedKmPh < 0.0) + return {}; + + return {speedKmPh}; } CameraProcessor::CameraInfo::CameraInfo(OsmElement const & element) @@ -53,8 +57,8 @@ CameraProcessor::CameraInfo::CameraInfo(OsmElement const & element) if (maxspeed.empty() || maxspeed.size() > kMaxSpeedSpeedStringLength) return; - if (auto const validatedMaxspeed = GetMaxSpeed(maxspeed)) - m_speed = static_cast(*validatedMaxspeed); + if (auto const validatedMaxspeed = GetMaxSpeedKmPH(maxspeed)) + m_speedKmPH = static_cast(*validatedMaxspeed); else LOG(LWARNING, ("Bad speed format of camera:", maxspeed, ", osmId:", element.m_id)); } @@ -106,8 +110,7 @@ void CameraProcessor::FillCameraInWays() void CameraProcessor::ProcessNode(OsmElement const & element) { CameraInfo camera(element); - if (camera.IsValid()) - m_speedCameras.emplace(element.m_id, std::move(camera)); + m_speedCameras.emplace(element.m_id, std::move(camera)); } void CameraProcessor::Finish() @@ -164,7 +167,7 @@ void CameraCollector::Write(FileWriter & writer, CameraProcessor::CameraInfo con DoubleToUint32(camera.m_lon, ms::LatLon::kMinLon, ms::LatLon::kMaxLon, kPointCoordBits); WriteToSink(writer, lon); - WriteToSink(writer, static_cast(camera.m_speed)); + WriteToSink(writer, camera.m_speedKmPH); auto const size = static_cast(ways.size()); WriteToSink(writer, size); diff --git a/generator/collector_camera.hpp b/generator/collector_camera.hpp index e49f4c6f40..df2aa53143 100644 --- a/generator/collector_camera.hpp +++ b/generator/collector_camera.hpp @@ -43,7 +43,7 @@ namespace routing /// "130 kmh" - means 130 km per hour. /// See https://wiki.openstreetmap.org/wiki/Key:maxspeed /// for more details about input string. -boost::optional GetMaxSpeed(std::string const & maxSpeedString); +boost::optional GetMaxSpeedKmPH(std::string const & maxSpeedString); class CameraProcessor { @@ -53,14 +53,12 @@ public: struct CameraInfo { - CameraInfo(const OsmElement & element); - - bool IsValid() const { return m_speed >= 0; } + explicit CameraInfo(OsmElement const & element); uint64_t m_id = 0; double m_lon = 0.0; double m_lat = 0.0; - uint32_t m_speed = 0; + uint32_t m_speedKmPH = 0; std::vector m_ways; };