| 85 | |
| 86 | template <class ObjT, class FilterT> |
| 87 | vector<ObjT> GetNearbyObjects(search::MwmContext & context, m2::PointD const & center, double radiusM, |
| 88 | FilterT && filter, bool ignoreEditedStatus = false) |
| 89 | { |
| 90 | vector<ObjT> objs; |
| 91 | |
| 92 | m2::RectD const rect = GetLookupRect(center, radiusM); |
| 93 | context.ForEachFeature(rect, [&](FeatureType & ft) |
| 94 | { |
| 95 | if (filter(ft)) |
| 96 | { |
| 97 | optional<string> const name = ft.GetTranslatedName().m_primary; |
| 98 | if (name.has_value()) |
| 99 | objs.emplace_back(ft.GetID(), feature::GetMinDistanceMeters(ft, center), name.value(), ft.GetNames()); |
| 100 | } |
| 101 | }, ignoreEditedStatus); |
| 102 | |
| 103 | sort(objs.begin(), objs.end(), base::LessBy(&ObjT::m_distanceMeters)); |
| 104 | return objs; |
| 105 | } |
| 106 | |
| 107 | vector<ReverseGeocoder::Street> ReverseGeocoder::GetNearbyStreets(search::MwmContext & context, |
| 108 | m2::PointD const & center, double radiusM, |
nothing calls this directly
no test coverage detected