| 96 | } |
| 97 | |
| 98 | void CameraCollector::FillCameraInWays() |
| 99 | { |
| 100 | for (uint64_t id : m_roadOsmIDs) |
| 101 | { |
| 102 | WayElement way(id); |
| 103 | CHECK(m_cache->GetWay(id, way), ()); |
| 104 | |
| 105 | for (auto const & node : way.m_nodes) |
| 106 | { |
| 107 | auto it = m_speedCameras.find(node); |
| 108 | if (it != m_speedCameras.cend()) |
| 109 | it->second.m_ways.push_back(id); |
| 110 | } |
| 111 | } |
| 112 | |
| 113 | size_t detachedCameras = 0; |
| 114 | ForEachCamera([&detachedCameras](auto & c) |
| 115 | { |
| 116 | if (c.m_ways.empty()) |
| 117 | ++detachedCameras; |
| 118 | else |
| 119 | base::SortUnique(c.m_ways); |
| 120 | }); |
| 121 | |
| 122 | LOG(LINFO, ("Total cameras count:", m_speedCameras.size(), "Detached cameras count:", detachedCameras)); |
| 123 | } |
| 124 | |
| 125 | void CameraCollector::MergeInto(CameraCollector & collector) const |
| 126 | { |