MCPcopy Create free account
hub / github.com/comaps/comaps / operator()

Method operator()

libs/search/locality_finder.cpp:168–190  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

166LocalitySelector::LocalitySelector(m2::PointD const & p) : m_p(p) {}
167
168void LocalitySelector::operator()(LocalityItem const & item)
169{
170 auto const inside = item.m_boundaries.HasPoint(m_p);
171
172 // TODO (@y, @m): replace this naive score by p-values on
173 // multivariate Gaussian.
174 double const distance = mercator::DistanceOnEarth(item.m_center, m_p);
175
176 // GetPopulationByRadius may return 0.
177 double const score = (ftypes::GetPopulationByRadius(distance) + 1) / static_cast<double>(item.m_population);
178
179 if (!inside && m_inside)
180 return;
181
182 ASSERT(inside || !m_inside, ());
183
184 if ((inside && !m_inside) || (score < m_score))
185 {
186 m_inside = inside;
187 m_score = score;
188 m_locality = &item;
189 }
190}
191
192// LocalityFinder::Holder --------------------------------------------------------------------------
193LocalityFinder::Holder::Holder(double radiusMeters) : m_radiusMeters(radiusMeters) {}

Callers

nothing calls this directly

Calls 4

GetPopulationByRadiusFunction · 0.85
ASSERTFunction · 0.85
DistanceOnEarthFunction · 0.50
HasPointMethod · 0.45

Tested by

no test coverage detected